Comment déployer une application Laravel avec ISPConfig


Procédure

Le déploiement d'une application Laravel sur un VPS avec ISPConfig s'effectue en configurant votre domaine, le site web dans le panneau de gestion, puis en installant le projet en ligne de commande avec un compte dédié. Laravel est un framework web open source en PHP conçu pour créer des applications web robustes et modernes grâce à une architecture claire et élégante. Cette procédure complète vous guide pas à pas jusqu'à l'affichage de la page d'accueil sécurisée en HTTPS, sans avoir besoin d'utiliser les droits root du serveur.

Les étapes

  1. Créer l'enregistrement DNS pour votre domaine ou sous-domaine

    Rendez-vous dans la rubrique de gestion de votre domaine, ouvrez l'onglet Zone DNS, puis créez une nouvelle entrée. Choisissez le type A, renseignez le sous-domaine souhaité (par exemple laravel pour laravel.learnlws.fr), entrez l'adresse IP de votre serveur VPS (ex. 203.0.113.10), puis cliquez sur Ajouter.

    Comment déployer une application Laravel avec ISPConfig
  2. Accéder à l'interface ISPConfig depuis l'espace client

    Depuis l'espace client LWS de votre VPS, repérez le bloc Administration de votre serveur et cliquez sur le bouton Panel d'administration pour vous connecter à ISPConfig.

    Comment déployer une application Laravel avec ISPConfig
  3. Ajouter le site web avec PHP-FPM et Let's Encrypt

    Dans ISPConfig, naviguez dans le menu Sites puis cliquez sur Add new website. Saisissez votre domaine complet (ex. laravel.learnlws.fr), sélectionnez l'alias Auto-Subdomain si besoin, cochez impérativement les cases SSL et Let's Encrypt SSL, définissez le champ PHP sur PHP-FPM, choisissez une version récente de PHP, puis cliquez sur Save.

    Comment déployer une application Laravel avec ISPConfig
  4. Créer un utilisateur Shell pour le projet

    Dans le menu de gauche, rendez-vous dans la section Command Line et cliquez sur SSH/SFTP-User, puis sur Add new SSH-User. Sélectionnez votre site web, renseignez le nom d'utilisateur (qui sera précédé d'un préfixe automatique comme defaultlaravelapp), indiquez un mot de passe sécurisé, laissez le paramètre Chroot Shell sur None pour permettre l'exécution globale des outils PHP, puis cliquez sur Save.

    Comment déployer une application Laravel avec ISPConfig
  5. Créer la base de données MySQL et son utilisateur

    Dans le menu de gauche sous Databases, commencez par ajouter un utilisateur MySQL via Database Users en lui attribuant un mot de passe fort. Rendez-vous ensuite dans Databases, cliquez sur Add new Database, sélectionnez votre site, nommez la base de données et rattachez l'utilisateur MySQL que vous venez de définir avant de valider.

  6. Se connecter en SSH et déployer le projet avec Composer

    Ouvrez votre terminal et connectez-vous avec votre utilisateur shell : ssh defaultlaravelapp@203.0.113.10. Vérifiez que Composer (le gestionnaire de dépendances standard pour PHP) est disponible via la commande composer -V ; s'il n'est pas encore présent, téléchargez son exécutable directement dans votre compte. Placez-vous dans le répertoire de votre hébergement et initialisez le projet avec composer create-project laravel/laravel . (ou clonez votre dépôt Git avant d'exécuter composer install).

  7. Configurer le fichier .env, générer la clé et migrer la base

    Éditez le fichier .env à la racine de votre projet Laravel avec un éditeur comme nano : définissez APP_URL=https://laravel.learnlws.fr et complétez les paramètres MySQL (DB_HOST=203.0.113.10, DB_DATABASE, DB_USERNAME, DB_PASSWORD). Lancez ensuite la génération de la clé de chiffrement avec php artisan key:generate, puis exécutez les migrations avec php artisan migrate pour créer les tables.

  8. Ajuster le dossier public web et les permissions

    Laravel distribue son point d'entrée depuis son sous-dossier public/. Dans ISPConfig, adaptez la directive de document root Apache de votre site web pour pointer vers ce dossier public/ (ou liez le dossier web/ vers public/), puis appliquez les permissions d'écriture indispensables sur les dossiers de cache et de logs en exécutant chmod -R 775 storage bootstrap/cache.

  9. Vérifier le fonctionnement sur le navigateur

    Ouvrez votre navigateur web et saisissez l'adresse de votre site (par exemple https://laravel.learnlws.fr). La page d'accueil par défaut de Laravel s'affiche avec le cadenas de sécurité SSL actif, confirmant la réussite complète de l'installation.

Commandes Artisan indispensables après le déploiement

Après l'installation de votre application Laravel, plusieurs commandes de la console Artisan facilitent l'exploitation et la maintenance du projet.

  • php artisan key:generate — génère la clé de chiffrement unique indispensable à la sécurité de l'application
  • php artisan migrate — applique les schémas et crée l'ensemble des tables dans votre base de données MySQL
  • php artisan config:cache — met en cache les fichiers de configuration pour accélérer les performances en production
  • php artisan route:cache — optimise le chargement de vos routes d'application pour les requêtes des visiteurs

Questions fréquentes

Pourquoi choisir l'option 'None' pour le Chroot Shell de l'utilisateur ?

Le mode 'None' permet à votre utilisateur d'exécuter les binaires globaux du système Debian (notamment PHP CLI, Git et Composer). Un environnement chrooté classique restreint les accès et bloquerait l'exécution normale des commandes Artisan et Composer.

Pourquoi la page d'accueil affiche-t-elle une erreur 500 après le déploiement ?

Une erreur HTTP 500 provient généralement d'une clé d'application absente dans le fichier .env (exécutez php artisan key:generate) ou de permissions insuffisantes sur les dossiers storage et bootstrap/cache qui doivent être accessibles en écriture par le serveur web.

Comment faire pointer ISPConfig directement vers le sous-dossier public de Laravel ?

Vous pouvez insérer une directive Apache personnalisée dans les options du site web sur ISPConfig pour redéfinir le DocumentRoot vers /var/www/votresite.com/web/public, ou remplacer le dossier standard web par un lien symbolique pointant sur le dossier public de votre projet.

Est-il nécessaire d'accéder au serveur avec le compte root ?

Non, l'ensemble des opérations de gestion des fichiers, d'installation de dépendances Composer, de configuration .env et de commandes Artisan s'effectue intégralement avec l'utilisateur shell rattaché au site web créé dans ISPConfig.

Le certificat SSL Let's Encrypt ne s'active pas dans ISPConfig, que faire ?

Assurez-vous que l'enregistrement DNS de type A pointe bien vers l'adresse IP de votre VPS et que la propagation est terminée. Let's Encrypt vérifie l'accessibilité du domaine depuis l'extérieur avant de valider et d'émettre le certificat.

Liens utiles

Notez cet article

Vous avez noté 0 étoile(s)

Cet article a été lu 2 fois.

Top