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.
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.
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.
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.
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.
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.
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).
É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.
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.
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.
Après l'installation de votre application Laravel, plusieurs commandes de la console Artisan facilitent l'exploitation et la maintenance du projet.
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.
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.
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.
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.
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.
Posez-la à l'équipe LWS et à la communauté. Réponse publiée après modération.