doganddev
Accueil Blog Boutique

Déployer un site Laravel sur Plesk

DOG&DEV · 25/01/2025

Informatique DevOps
Déployer un site Laravel sur Plesk

Déployer un site Laravel sur Plesk

Déployer une application Laravel sur Plesk implique de pointer la racine web vers le dossier public/, de configurer .env, les migrations, les permissions et le cron pour la file et les tâches planifiées. Ce guide décrit une procédure type adaptée à un hébergement mutualisé ou VPS avec Plesk.

Prérequis

  • Plesk installé avec un domaine (plesk-config-domaine)
  • PHP 8.1+ avec extensions Laravel (openssl, pdo, mbstring, tokenizer, xml, ctype, json, bcmath, fileinfo)
  • Accès FTP/SFTP ou Git pour déployer le code
  • MySQL ou PostgreSQL (créé dans Plesk)

1. Déployer le code

  • Git : cloner le dépôt dans un répertoire hors httpdocs (ex. ~/repos/monapp) puis, pour la prod, faire un git pull et lancer le build (voir ci‑dessous). Vous pouvez aussi déployer dans un sous-dossier de httpdocs et faire pointer le domaine vers httpdocs/monapp/public — éviter de mettre tout Laravel dans la racine web.
  • FTP/SFTP : envoyer les fichiers dans un dossier dédié. Ne pas exposer .env, /storage, /vendor à la racine web : la racine doit être uniquement le contenu de public/ (ou un alias vers public/).

Structure cible typique :

  • Dossier projet : ex. /var/www/vhosts/domaine.com/monapp/ (contenant app/, config/, public/, vendor/, etc.)
  • Document Root du domaine (ou sous-domaine) : .../monapp/public

2. Document Root : pointer vers public/

Dans Plesk : Domainesdomaine.comParamètres d’hébergement (ou Hosting & DNS).
Document Root : passer de httpdocs à le chemin vers le dossier public du projet, par ex. :

  • httpdocs/monapp/public
    ou
  • ~/repos/monapp/current/public si vous utilisez un déploiement avec symlink.

Tout le trafic web doit être servi depuis public/ pour que index.php et les assets soient utilisés, et que le reste du code (.env, vendor/, etc.) ne soit pas accessible.

3. Fichier .env et base de données

  • Créer ou copier .env à la racine du projet (à côté de artisan), pas dans public/.
  • Renseigner notamment :
    • APP_ENV=production
    • APP_DEBUG=false
    • APP_URL=https://domaine.com
    • DB_* : hôte (souvent localhost), base, utilisateur, mot de passe (créés dans Plesk)

Générer la clé :

php artisan key:generate

4. Dépendances et build

En SSH (ou via une tâche de déploiement) :

cd /chemin/vers/monapp
composer install --no-dev --optimize-autoloader
php artisan config:cache
php artisan route:cache
php artisan view:cache

Si vous utilisez Vite ou Mix :

npm ci
npm run build

(À lancer en amont et à inclure dans votre pipeline si vous en avez un.)

5. Migrations et permissions

php artisan migrate --force

Droits : storage/ et bootstrap/cache/ doivent être en écriture pour le compte PHP (souvent www-data ou l’utilisateur du domaine Plesk) :

chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

(Adaptez www-data au user/group utilisés par Plesk pour ce domaine.)

6. Cron : schedule:run

Pour les tâches planifiées Laravel (App\Console\Kernel, schedule) :

* * * * * cd /chemin/vers/monapp && php artisan schedule:run >> /dev/null 2>&1

Dans Plesk : Domainesdomaine.comTâches planifiées (ou Scheduled Tasks) → Ajouter :

  • Commande : php artisan schedule:run
  • Répertoire : le répertoire du projet
  • Fréquence : Chaque minute (* * * * *).

7. File d’attente (queue)

Si vous utilisez des jobs (emails, traitements) :

  • Driver : database, redis, etc. dans .env (QUEUE_CONNECTION=...).
  • Pour database : php artisan queue:work (ou queue:listen) dans un supervisor ou une tâche planifiée longue.
    Plesk ne gère pas toujours un worker ; un accès SSH et l’installation de Supervisor sur le serveur peuvent être nécessaires.

8. SSL (HTTPS)

  • Activer Let’s Encrypt pour le domaine et forcer HTTPS : ssl-plesk.
  • Dans .env : APP_URL=https://domaine.com et, si derrière un reverse proxy, TrustProxies et APP_URL cohérents.

Dépannage

Symptôme Cause possible Correctif
500 après déploiement Permissions storage/bootstrap/cache, .env manquant, APP_KEY vide chmod/chown ; vérifier .env et php artisan key:generate
« No application encryption key » APP_KEY absent php artisan key:generate
Erreur BDD Mauvais DB_* dans .env Vérifier hôte, base, user, mot de passe dans Plesk
Assets 404 Document Root pas sur public/ ou Vite/Mix non buildés Pointer Document Root sur public/ ; npm run build

Bonnes pratiques

  • Ne jamais commiter .env ; le générer côté serveur.
  • Utiliser composer install --no-dev et les caches (config:cache, route:cache, view:cache) en production.
  • Automatiser le déploiement (script Git + composer + artisan + npm run build) pour limiter les erreurs.

Chez DOG&DEV, nous déployons régulièrement des applications Laravel (sites, PanelRP, etc.) ; ces étapes constituent une base solide pour une mise en production avec Plesk.

Ressources


Cet article s’inscrit dans notre série de guides hébergement et gaming. Pour un serveur sur-mesure, contact.

Commentaires (0)

Laisser un commentaire