Publier une application Laravel dans un sous-domaine avec LWS Panel

Procédure

Sur LWS Panel, le dossier d'un sous-domaine est imposé : /htdocs/app.exemple.com/ pour app.exemple.com, et il ne peut pas pointer vers le dossier public/ de Laravel. Pour publier l'application Laravel que vous avez développée, déposez tout le projet dans ce dossier, ajoutez à sa racine le fichier .htaccess qui envoie les visiteurs vers public/, installez les dépendances avec Composer dans le Terminal, puis réglez le fichier .env. Cette aide détaille ces étapes et la recherche de la cause d'une erreur 500.

Publier votre application dans le sous-domaine

  1. Créez le sous-domaine

    Dans le tableau de bord de votre hébergement, rubrique « Gestion du domaine », ouvrez « Sous domaines ». Dans « Sous-domaine à ajouter », tapez seulement la partie qui précède le domaine (par exemple app), puis cliquez sur « + ajout ». Le certificat SSL du sous-domaine se génère en 3 minutes environ : un compte à rebours « Temps restant » s'affiche.

    La colonne « Répertoire » indique le dossier du sous-domaine : app.exemple.com, c'est-à-dire /htdocs/app.exemple.com/. Aucun champ ne permet de choisir un autre dossier. Le détail de cet écran est dans l'aide Comment créer des sous-domaines sur le LWS Panel ?

    Publier une application Laravel dans un sous-domaine avec LWS Panel

  2. Envoyez le projet Laravel dans le dossier du sous-domaine

    Déposez le projet complet (dossiers app, bootstrap, config, public, routes, storage, fichiers artisan et composer.json…) directement dans /htdocs/app.exemple.com/. Le fichier index.php de Laravel doit se trouver à l'emplacement /htdocs/app.exemple.com/public/index.php.

    Avec le Gestionnaire de fichiers (rubrique « Fichiers »), envoyez une archive .zip du projet par « Charger » (1 125 Mo au plus par fichier), sélectionnez-la puis cliquez sur « Extraire ». Pour un très grand nombre de fichiers, un logiciel FTP convient mieux. Si votre projet est sur Git, vous pouvez aussi le cloner depuis le Terminal : voir Comment utiliser GIT avec le terminal Web sur mon hébergement mutualisé LWS ?

  3. Envoyez les visiteurs vers le dossier public/

    Le dossier du sous-domaine ne pouvant pas pointer vers public/, c'est un fichier .htaccess placé à la racine de /htdocs/app.exemple.com/ (à côté du dossier public, pas dedans) qui redirige les visiteurs vers public/. Son contenu est donné dans l'aide Installer Laravel sur un hébergement mutualisé LWS, partie « Comment bien configurer son site Laravel ? ».

    Dans le Gestionnaire de fichiers, ouvrez le dossier du sous-domaine, cliquez sur « + Fichier » et nommez-le .htaccess. Cliquez ensuite sur son nom pour l'ouvrir dans l'« Editeur de code », collez le contenu, puis cliquez sur « Enregistrer les modifications ».

    Ne modifiez pas le fichier .htaccess qui se trouve déjà dans public/ : il est fourni avec Laravel et envoie les requêtes vers index.php.

  4. Choisissez la version de PHP du sous-domaine

    Dans la rubrique « Base de données & PHP », ouvrez « Configuration php ». Dans l'onglet « Installation et sélection de PHP », vérifiez que la version voulue est cochée (par exemple « PHP 8.5 + Ioncube (recommended) »). Dans l'onglet « Configuration PHP par sites », choisissez ensuite cette version sur la ligne de votre sous-domaine, puis cliquez sur « Enregistrer ».

    Publier une application Laravel dans un sous-domaine avec LWS Panel

    Si un bandeau indique « Attention vous avez déclaré un/des fichier(s) .htaccess, ce qui surpasse la version PHP affichée dans votre espace client », la version de PHP de ce dossier vient d'une ligne du fichier .htaccess dont le chemin est affiché : c'est cette ligne qu'il faut modifier. Plus de détails dans Comment configurer PHP sur mon hébergement ?

  5. Installez les dépendances avec Composer

    Ouvrez « Logiciels » puis « Terminal ». La console démarre dans le dossier ~/htdocs. Placez-vous dans le dossier du sous-domaine, affichez la version de PHP de la console, puis installez les dépendances du projet :

    ⌨ Sur le serveur
    cd app.exemple.com
    php -v
    composer install

    La version affichée par php -v doit convenir à votre version de Laravel. Sinon, changez la version de PHP du Terminal en suivant Comment changer la version PHP Terminal Web LWS Panel.

  6. Réglez le fichier .env

    Le fichier .env se trouve à la racine du projet (/htdocs/app.exemple.com/.env), pas dans public/. Ouvrez-le dans le Gestionnaire de fichiers et réglez au moins ces lignes avec les valeurs de votre site :

    📄 /htdocs/app.exemple.com/.env
    APP_DEBUG=false
    APP_URL=https://app.exemple.com
    DB_CONNECTION=mysql
    DB_HOST=203.0.113.10
    DB_DATABASE=nom_de_la_base
    DB_USERNAME=utilisateur_de_la_base
    DB_PASSWORD=mot_de_passe_de_la_base

    Les valeurs de la base se lisent dans « Base de données & PHP » puis « MySql & PhpMyadmin », sur la ligne de la base : colonne « Base » pour DB_DATABASE, « Utilisateur » pour DB_USERNAME et « Ip serveur » pour DB_HOST (une adresse IP, pas localhost). Le mot de passe n'est pas affiché : il vous a été envoyé par e-mail à la création de la base. S'il est perdu, changez-le par le menu « ⋮ » puis « Changer mot de passe ».

    Dans le fichier .env d'un projet Laravel 13 neuf, la ligne DB_CONNECTION vaut sqlite et les autres lignes DB_ commencent par un # : retirez ces # et indiquez mysql. Pour l'envoi d'e-mails, les lignes MAIL_ sont expliquées dans l'aide Installer Laravel sur un hébergement mutualisé LWS.

    Si la ligne APP_KEY= est vide, générez la clé de l'application dans le Terminal, toujours dans le dossier du sous-domaine. Ne la régénérez pas si elle est déjà remplie.

    ⌨ Sur le serveur
    php artisan key:generate

    Créez ensuite les tables de la base, puis mettez la configuration en cache :

    ⌨ Sur le serveur
    php artisan migrate
    php artisan config:cache

    Après chaque modification du fichier .env, relancez php artisan config:cache : une fois la configuration en cache, Laravel ne relit plus le fichier .env.

Vérifier que tout fonctionne

Ouvrez https://app.exemple.com dans votre navigateur : la page d'accueil de votre application s'affiche, avec le cadenas du certificat SSL. Parcourez quelques pages et vérifiez que la mise en forme et les images s'affichent.

Vérifiez aussi que les fichiers du projet ne sont pas lisibles depuis Internet : l'adresse https://app.exemple.com/composer.json doit afficher une page d'erreur de votre application, et non le contenu du fichier. Si le contenu s'affiche, le fichier .htaccess de l'étape 3 est absent ou mal placé : corrigez-le tout de suite.

Mon application affiche une erreur 500

Suivez les points dans l'ordre et arrêtez-vous dès que l'erreur disparaît.

Lisez l'erreur exacte dans les journaux du LWS Panel

Dans la rubrique « Base de données & PHP », cliquez sur « Logs Apache PHP ModSecurity » : l'outil LWS Log Analyzer s'ouvre. Ouvrez l'onglet « Erreurs PHP », choisissez votre sous-domaine dans la liste des domaines et la période, puis le filtre « Fatal ». Les colonnes « FICHIER PHP », « LIGNE » et « MESSAGE » donnent la cause, et le bouton « ✨ Diagnostic IA » l'explique en langage simple.

Publier une application Laravel dans un sous-domaine avec LWS Panel

Lisez le journal de Laravel

Laravel écrit ses propres erreurs dans le fichier storage/logs/laravel.log du projet. Ouvrez-le dans le Gestionnaire de fichiers et regardez les dernières lignes, à l'heure de l'erreur. S'il n'y a rien à cette heure-là, fiez-vous à l'onglet « Erreurs PHP » du point précédent.

Corrigez les causes les plus courantes

  • Clé de l'application absente (ligne APP_KEY= vide) : lancez php artisan key:generate dans le Terminal, dans le dossier du sous-domaine.
  • Dossiers storage et bootstrap/cache non accessibles en écriture : Laravel doit pouvoir y écrire. Vérifiez leurs droits avec le bouton « Permissions » du Gestionnaire de fichiers.
  • Dossier vendor absent : lancez composer install dans le dossier du sous-domaine (étape 5).
  • Version de PHP trop ancienne pour votre version de Laravel : changez-la (étape 4).
  • Erreur apparue juste après l'ajout ou la modification du fichier .htaccess : remettez la copie que vous aviez gardée, puis comparez votre fichier avec celui de l'aide Installer Laravel sur un hébergement mutualisé LWS.
  • Connexion à la base refusée : comparez DB_HOST, DB_DATABASE, DB_USERNAME et DB_PASSWORD avec la ligne de la base dans « MySql & PhpMyadmin », puis relancez php artisan config:cache.

Pour les autres causes d'erreur 500, consultez Comment corriger une erreur 500 sur votre site avec LWS Panel.

Questions fréquentes

Puis-je faire pointer mon sous-domaine directement vers le dossier public/ ?

Non. Sur LWS Panel, le dossier d'un sous-domaine porte son nom complet (/htdocs/app.exemple.com/) et l'écran « Sous domaines » ne permet pas d'en choisir un autre. C'est pourquoi le fichier .htaccess de l'étape 3 envoie les visiteurs vers public/.

Ma formule permet-elle d'utiliser Composer et php artisan ?

Ces commandes se lancent dans le Terminal du LWS Panel (« Logiciels » puis « Terminal »), ou en SSH depuis votre ordinateur à partir de la formule Starter. Si le Terminal affiche « Pour bénéficier de cet outil il est nécessaire de passer sur une formule supérieure », il n'est pas inclus dans votre formule. La formule Domaine n'a ni PHP ni base de données : Laravel n'y fonctionne pas.

Mes modifications du fichier .env ne sont pas prises en compte

La configuration est en cache : relancez php artisan config:cache dans le dossier du sous-domaine, ou videz ce cache avec php artisan config:clear.

Comment mettre à jour mon application depuis Git ?

Récupérez les modifications depuis le Terminal, comme expliqué dans Comment utiliser GIT avec le terminal Web sur mon hébergement mutualisé LWS ?, puis relancez composer install, php artisan migrate et php artisan config:cache dans le dossier du sous-domaine.

Articles associés

Liens utiles

aide.lws.fr/a/7993
Cet article vous a-t-il aidé ?

Oui

Non

Lu 2 fois

Merci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.

Articles similaires

Une question sur cet article ?

Posez-la à l'équipe LWS et à la communauté. Réponse publiée après modération.

Poser une question à l'équipe LWS et à sa communauté

RGPD : Responsable : LWS-Ligne Web Services. Finalité : modération et publication publique de votre question, notification éventuelle d'une réponse. Base légale : consentement (art. 6.1.a RGPD). Conservation des emails : 90 jours après notification, 12 mois maximum sans réponse. Pour exercer vos droits, consultez la section RGPD de nos CGV.