Laravel
Laravel 11 & 10 • Chapitre 6 : Déploiement

Déploiement & Mise en Production de Laravel

Déployer une application Laravel en production exige rigueur et méthode : désactivation du mode debug, compilation des assets avec Vite, mise en cache des configurations et isolation du dossier public/ pour garantir sécurité et performances optimales.

🔒
Sécurité Critique

APP_DEBUG=false impératif pour ne pas divulguer vos mots de passe et clés secrètes en cas d'erreur.

📁
DocumentRoot /public

Le serveur web (Nginx ou Apache) doit pointer strictement vers /public. Vos dossiers .env et app/ ne doivent jamais être accessibles via l'URL.

⚡
Optimisation Artisan

La commande magique php artisan optimize met en cache les routes et configurations pour diviser le temps de réponse par deux.

📦
Assets Compilés Vite

Exécutez npm run build avant la livraison pour générer les fichiers CSS et JS minifiés dans public/build.

deploy.sh & .env.production (Standards Actuels)
#!/bin/bash
# ------------------------------------------------------------------
# SCRIPT DE DÉPLOIEMENT AUTOMATISÉ (Standard Production Laravel 11)
# ------------------------------------------------------------------

# 1. Activer le mode maintenance élégant
php artisan down --secret="acces-urgence-admin" --render="errors::503"

# 2. Récupérer la dernière version du code
git pull origin main

# 3. Installer les dépendances PHP sans paquets de développement
composer install --no-dev --optimize-autoloader --no-interaction

# 4. Compiler les assets Vite
npm ci && npm run build

# 5. Exécuter les migrations en forçant le mode production
php artisan migrate --force

# 6. Recréer les liens de stockage et vider/mettre en cache
php artisan storage:link
php artisan optimize

# 7. Redémarrer les workers de files d'attente (Queues)
php artisan queue:restart

# 8. Désactiver le mode maintenance
php artisan up

echo "✓ Déploiement Laravel terminé avec succès !"

Simulateur Audit & Checklist de Déploiement en Production

Vérificateur de Santé Pré-Lancement

Activez les étapes obligatoires de mise en production pour auditer votre application. Une seule omission critique peut exposer vos identifiants ou ralentir considérablement vos utilisateurs.

Empêche la fuite de secrets SQL et clés d'API.
Chiffrement des cookies de session et des mots de passe.
Allège le serveur et accélère le chargement des classes PHP.
CSS et JS minifiés sans serveur de dev Node.js actif.
Supprime la lecture répétée des fichiers de configuration.
Permet au serveur web d'écrire les logs et sessions.
Indice de Préparation au Déploiement : 67% Conforme
⚠️ Il reste 2 critère(s) à valider avant d'autoriser la mise en production.
L'Erreur Fatale : Déployer à la Racine Web

Sur certains hébergements mutualisés bon marché, les développeurs débutants déplacent le contenu de public/ dans public_html/ et bidouillent le fichier index.php.

Le danger absolu : Si le serveur web est mal configuré, un visiteur peut taper https://monsite.com/laravel/.env dans son navigateur et télécharger tous vos mots de passe de base de données en clair ! Configurez toujours le DocumentRoot sur le dossier /public.

Solutions Modernes Recommandées

Pour des déploiements professionnels sans prise de tête :

  • • VPS avec Laravel Forge : Automatisation complète sur DigitalOcean, AWS ou Hetzner.
  • • Plateformes Cloud (PaaS) : Fly.io, Railway, Render ou Laravel Vapor (Serverless avec AWS Lambda).
  • • CI/CD GitHub Actions : Exécution automatique des tests et déploiement à chaque commit sur main.