What you need
- A hosting account with cPanel
- A domain or subdomain for the app (for example
app.yourcompany.com) - The app's zip file and its list of requirements (PHP version and extensions)
Step 1 — Set the right PHP version
In cPanel open MultiPHP Manager (on some hosts: Select PHP Version). Choose the version your app needs — modern Laravel apps usually need PHP 8.3 or newer. Then check the extensions the app lists (commonly pdo, mbstring, openssl, tokenizer, dom, fileinfo) are switched on.
Step 2 — Create the domain or subdomain
Open Domains and create the domain or subdomain you will use. Leave the document root for now — we set it in Step 4.
Step 3 — Upload and extract the app
- Open File Manager.
- In your home folder (next to
public_html, not inside it) create a folder, for examplemyapp. - Upload the zip into that folder and use Extract.
Keeping the app outside public_html matters: a Laravel app has folders (including its settings file) that must never be reachable from the web.
Step 4 — Point the domain at the public folder
This is the most important step. In Domains, edit your domain's Document Root and set it to the app's public folder, for example myapp/public.
public_html to "make it work". That exposes the settings file — with your database password — to anyone. If your host cannot change the document root, ask their support to do it.Step 5 — Create the database (if the app uses MySQL)
- Open MySQL Database Wizard.
- Create a database, then a user with a strong password.
- Give the user All Privileges on the database.
- Note the database name, user name and password — cPanel usually adds your account name in front (for example
account_myapp).
Some apps can also use SQLite, which needs no database setup at all.
Step 6 — Run the installer
Most ready-made apps include a web installer. Open your domain in the browser and follow it: it checks the server, asks for the database details and creates the admin account. If the app has no installer, follow its documentation to fill in the .env settings file.
If the installer says a folder is not writable, make sure storage and bootstrap/cache can be written by the web server (permissions 755 for folders are usually right on cPanel).
Step 7 — Add the cron job
Many Laravel apps do background work on a schedule (for example retrying failed deliveries). Open Cron Jobs, choose Once Per Minute, and add:
cd /home/youraccount/myapp && php artisan schedule:run >> /dev/null 2>&1
Replace youraccount and myapp with your own names. If the app's documentation says it needs no cron, skip this step.
Step 8 — Turn on free SSL
Open SSL/TLS Status and run AutoSSL for the domain (most hosts include free certificates). After a few minutes your app opens with https://.
Troubleshooting
"500 Server Error" right after upload
Usually the wrong PHP version or a missing extension. Re-check Step 1.
You see a list of files, or the app's folders
The document root does not point to the public folder. Re-check Step 4.
"Could not connect to the database"
Check the full database and user names including the account prefix, and that the user was added to the database with all privileges.