Déployer votre site Laravel sur un hébergement mutualisé n’est pas toujours bien documenté. De nombreux articles existants ne fonctionnent pas (croyez-moi, je les ai tous essayés). J’aurais aimé avoir un guide comme celui-ci à l’époque, donc j’ai décidé d’en écrire un.
Pré-requis
- Votre application Laravel
- Git
- Un compte GitHub ou GitLab (supposons que vous en avez un)
- Un compte d’hébergement mutualisé
- SSH (optionnel)
Résumé
Pour déployer Laravel sur un hébergement mutualisé :
- Clonez votre dépôt Git dans votre compte d’hébergement.
- Configurez la base de données.
- Configurez le fichier
.htaccess
pour définir le répertoire racine des documents. - Et voilà, votre application est prête à fonctionner.
Préparation
- Initialisez un dépôt Git si ce n’est pas déjà fait :bash
git init && git add . && git commit -m "Initial commit"
- Créez un dépôt vide sur GitHub si nécessaire, puis poussez votre code vers ce dépôt :bash
git remote add origin votre-url-github && git push origin master
- Compilez les assets pour la production :bash
npm run production
- Commitez les changements et poussez-les :bash
git add . && git commit -m "Ready for production" git push origin master
Déploiement
Accès SSH
En fonction de votre fournisseur d’hébergement, vous devrez peut-être contacter leur support pour obtenir un accès SSH. Certains hébergements permettent uniquement un accès Shell via une interface de navigateur.
Accéder à votre terminal CPanel
- Connectez-vous à votre compte CPanel.
- Allez dans Avancé > Terminal.
- Une fois dans le terminal, rendez-vous dans le répertoire
public_html
: bashcd public_html
Configuration Git
- Assurez-vous que Git est installé sur votre hébergement. Si ce n’est pas le cas, contactez votre fournisseur.
- Pour éviter de saisir vos identifiants Git à chaque fois, configurez un stockage local des identifiants :bash
git config credential.helper store --local
Utilisez l’option--local
pour que les identifiants soient spécifiques à ce dépôt uniquement. - Clonez votre dépôt :bash
git clone votre-url-github
Activer les fonctions PHP désactivées
Pour des raisons de sécurité, certaines fonctions PHP, comme proc_open
, peuvent être désactivées par votre hébergement. Voici comment les activer :
- Dans le terminal de votre hébergeur, allez dans le répertoire racine et ouvrez le fichier
php.ini
: bashnano php.ini
- Remplacez le contenu par : plaintext
disable_functions = system,exec,passthru,shell_exec,proc_get_status,proc_terminate,proc_close,virtual,popen,show_source,curl_multi_exec
- Enregistrez et fermez le fichier.
Configurer la base de données
- Dans votre CPanel, créez une base de données.
- Retournez dans le terminal et naviguez vers le répertoire de votre application Laravel : bash
cd public_html/votre_nom_de_repo
- Copiez le fichier
.env.example
en.env
: bashcp .env.example .env
- Modifiez le fichier
.env
pour y ajouter les informations de votre base de données.
Installer les dépendances
Dans le terminal, installez les dépendances de Laravel avec Composer :
bash
composer install
Exécuter les migrations
Pour configurer les tables de votre base de données, exécutez :
bash
php artisan migrate
Configurer le fichier .htaccess
- Ouvrez le fichier
.htaccess
dans le répertoirepublic_html
:bashnano .htaccess
- Ajoutez les lignes suivantes à la fin du fichier :plaintext
RewriteEngine on RewriteCond %{HTTP_HOST} ^votre-domaine.com$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.votre-domaine.com$ RewriteRule (.*) /votre-repo/public/$1 [L]
Cela redirigera tout le trafic depublic_html
vers le répertoirepublic
de Laravel. - Enregistrez et fermez le fichier.
Tester l’application
- Ouvrez un nouvel onglet dans votre navigateur.
- Rendez-vous sur votre domaine (
votre-domaine.com
). - Votre application Laravel devrait maintenant être en ligne.
Avec ces étapes, vous avez déployé une application Laravel sur un hébergement mutualisé. En suivant cette méthode, vous pouvez contourner les limitations des hébergements mutualisés tout en exploitant au mieux les fonctionnalités de Laravel. Bonne chance et bon codage !