Browse software

How to install a Laravel app on cPanel

Most ready-made Laravel apps run fine on ordinary shared hosting. Here is the safe way to set one up, step by step — no command line needed.

Updated 4 October 2026 · 7 min read

What you need

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

  1. Open File Manager.
  2. In your home folder (next to public_html, not inside it) create a folder, for example myapp.
  3. 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.

Do not move the app's files into 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)

  1. Open MySQL Database Wizard.
  2. Create a database, then a user with a strong password.
  3. Give the user All Privileges on the database.
  4. 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.

PunchSync follows exactly these steps: a five-step web installer, SQLite or MySQL, and one cron line for webhooks. No command line needed.
Topics:LaravelcPanelShared hostingCron jobSSL

Related guides