Deploy Laravel on hosting (Plesk deployment checklist)
- 20.02.2026 00:57
-
- deployment
- hosting
- plesk
This guide helps you deploy a Laravel application on GARMTECH Web Hosting (Plesk).
Laravel’s public entry point must be public/index.php. For security, your website document root should point to the public directory (so .env and other internal files are not publicly accessible).
1) Upload the Laravel project
You can upload the project using:
- FTP‑SSL (FTPS) (recommended for full deployments),
- Plesk File Manager (good for archives), or
- Git deployment (developer workflow).
Typical layout on shared hosting:
httpdocs/– website root in Pleskhttpdocs/public/– Laravel public directory
2) Set the correct document root in Plesk
- Open Plesk → Websites & Domains → your domain.
- Open Hosting Settings.
- Set Document root to
httpdocs/public. - Save changes.
Note: If you host multiple apps, you can use subdomains (for example app.example.com) and set their document root separately.
3) Select PHP version and enable required extensions
- Plesk → domain → PHP Settings → select the required PHP version for your Laravel version.
- Enable common extensions if they are available:
mbstring,openssl,pdo,tokenizer,xml,ctype,json,fileinfo.
4) Create a database and user
- Plesk → domain → Databases → Add Database.
- Create a database user and note the credentials.
- Update your
.envfile with DB settings (DB_HOST/DB_DATABASE/DB_USERNAME/DB_PASSWORD).
5) Install dependencies (Composer) and prepare the app
Laravel requires the vendor directory. You can:
- Run Composer install on the server (SSH or Plesk Composer tool), or
- Run it locally and upload the complete project (including
vendor).
Typical Laravel “first run” commands (SSH):
php artisan key:generate
php artisan config:cache
If your app uses storage symlinks:
php artisan storage:link
6) Fix permissions (common cause of 500 errors)
Laravel must be able to write to:
storage/bootstrap/cache/
If you see permission errors in logs, ensure these folders are writable by your hosting system user.
7) (Optional) Schedule tasks with Cron
If your application uses the Laravel scheduler, create a cron job in Plesk:
- Plesk → domain → Scheduled Tasks
Typical schedule command (every minute):
* * * * * php /path/to/artisan schedule:run
The exact PHP binary path can vary. If you use SSH, you can usually run php directly; otherwise use the PHP CLI path shown in your environment.
8) Troubleshooting quick checklist
- Blank page / 500 error: check Plesk Logs for Laravel error details.
- 404 on all routes: document root is not set to
publicor rewrite rules are not applied. - “APP_KEY missing”: run
php artisan key:generate. - Database errors: re-check
.envDB settings and database user permissions.