Install CakePHP on Flashcloud hosting with Composer over SSH: composer create-project --prefer-dist cakephp/app my_app_name, then point your domain or subdomain's document root at the app's webroot folder. If you don't have SSH access, download the same project as a zip from Composer locally and upload it through File Manager instead.
CakePHP is a PHP MVC framework, and unlike Softaculous-installed apps (WordPress, Joomla, and similar), it isn't in our one-click installer catalog. Frameworks get installed via Composer or a manual file upload, and configured like any other PHP application on shared hosting. The steps below cover both paths.
Before you start: PHP version
Check which CakePHP version you're installing and what PHP it requires. Recent CakePHP 5.x releases need PHP 8.1 or newer; CakePHP 4.x supports 7.4 through 8.x depending on point release. Our servers default to PHP 8.2, with 7.4 through 8.3 available per domain from the PHP Version tile in the portal. Set the version that matches your CakePHP release before you install anything, since running the installer under the wrong PHP version is a common cause of a blank screen or Composer dependency errors.
If you need to raise upload_max_filesize, memory_limit, or similar PHP settings for a large asset upload or a memory-hungry Composer install, that's done in cPanel under Software → MultiPHP INI Editor, not the PHP Version tile (that tile only switches the version).
Installing with Composer over SSH
If your plan includes SSH access, this is the fastest and most reliable path, since Composer resolves and downloads the exact dependency versions CakePHP needs.
- Open cPanel from your service's one-click login and note your home directory path, or connect directly via SSH if you already have terminal access set up.
- SSH Access is listed under Security in cPanel (Classic theme); in the Meridian theme, check Security → Advanced for your SSH connection details.
- SSH in and run:
cd ~ composer create-project --prefer-dist cakephp/app my_app_name
- This creates a full application skeleton in
my_app_name/, including thewebroot/folder that needs to be your web-facing document root.
CakePHP's front controller and all its static assets live in webroot/, while the application code, configuration, and vendor libraries sit outside it.
Pointing the domain at the right folder
Never set your document root to the CakePHP project's top-level folder. Only webroot/ should be web-accessible, everything else (config files, source code, the vendor/ directory) needs to stay outside the public path.
- If you're running CakePHP on its own subdomain: create the subdomain from the Subdomains tile in the portal and set its document root to
my_app_name/webroot. - If it's a folder on your main domain: use Addon Domains or Domain Aliases depending on whether it needs its own domain name, and again set the document root to the app's
webrootpath, not the project root.
If your CakePHP install needs to live on a domain already pointed elsewhere, adjust DNS from Services → your hosting → DNS Zone Editor (domain-level nameserver changes are handled separately, from the Domains section).
Installing manually (no SSH)
Without SSH, run Composer on your own machine instead of the server:
- Install Composer locally if you don't have it, then run the same
composer create-project --prefer-dist cakephp/app my_app_namecommand on your computer. - Zip the resulting
my_app_namefolder. - Open File Manager from the portal, upload the zip to your home directory, and extract it.
- Point your domain's document root at the extracted folder's
webrootsubfolder, same as the SSH path above.
Composer's own dependency downloads (Cake's ORM, console, and templating packages) are already baked into the zip this way, so the server never needs Composer installed. The tradeoff is that updating dependencies later means repeating the local build-and-upload cycle rather than running composer update directly on the server.
Database and file permissions
Create a MySQL database and user from MySQL Databases in the portal, then set the credentials in CakePHP's config/app_local.php (or config/app.php on older versions) under the Datasources array.
CakePHP also needs its tmp/ and logs/ directories to be writable by the web server for caching, sessions, and log output. If you see permission-denied errors in the browser or in logs/error.log, check those two folders first.
Getting your PHP extensions right
CakePHP's requirements typically include intl. Toggle PHP extensions from cPanel's Select PHP Version tool (account-wide, with a per-domain override tab); the extension checkboxes sit next to the version selector. If Composer or the app itself complains about a missing extension, that's the tool to check.
If something doesn't load
A blank page or a 500 error after install is almost always one of: wrong document root (pointing above webroot, or below it), a PHP version mismatch, or a missing extension.
Our shared and WordPress plans run on LiteSpeed with PHP versions switchable per domain, which applies to framework installs like CakePHP too. For general background on how our stack handles PHP performance, see how we make your site fast. If you're moving an existing CakePHP site to us rather than installing fresh, our cPanel access guide covers where to find File Manager, Git Version Control, and the database tools you'll need during the move.
If you've checked document root, PHP version, and extensions and it's still not resolving, open a ticket from Support with your domain, the CakePHP version, and the exact error from logs/error.log. A real person will look at the server-side error log directly rather than guessing from a screenshot.