Prod : Déployer Laravel sur un hébergement mutualisé

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é :

  1. Clonez votre dépôt Git dans votre compte d’hébergement.
  2. Configurez la base de données.
  3. Configurez le fichier .htaccess pour définir le répertoire racine des documents.
  4. Et voilà, votre application est prête à fonctionner.

Préparation

  1. Initialisez un dépôt Git si ce n’est pas déjà fait :bash
    git init && git add . && git commit -m "Initial commit"
  2. 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
  3. Compilez les assets pour la production :bash
    npm run production
  4. 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

  1. Connectez-vous à votre compte CPanel.
  2. Allez dans Avancé > Terminal.
  3. Une fois dans le terminal, rendez-vous dans le répertoire public_html : bash
    cd public_html

Configuration Git

  1. Assurez-vous que Git est installé sur votre hébergement. Si ce n’est pas le cas, contactez votre fournisseur.
  2. 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.

  3. 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 :

  1. Dans le terminal de votre hébergeur, allez dans le répertoire racine et ouvrez le fichier php.ini : bash
    nano php.ini
  2. 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
  3. Enregistrez et fermez le fichier.

Configurer la base de données

  1. Dans votre CPanel, créez une base de données.
  2. Retournez dans le terminal et naviguez vers le répertoire de votre application Laravel : bash
    cd public_html/votre_nom_de_repo
  3. Copiez le fichier .env.example en .env : bash
    cp .env.example .env
  4. 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

  1. Ouvrez le fichier .htaccess dans le répertoire public_html :bash
    nano .htaccess
  2. 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 de public_html vers le répertoire public de Laravel.

  3. Enregistrez et fermez le fichier.

Tester l’application

  1. Ouvrez un nouvel onglet dans votre navigateur.
  2. Rendez-vous sur votre domaine (votre-domaine.com).
  3. 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 !

Bases : Construire un projet Laravel

La création d’un projet Laravel efficace nécessite une approche bien structurée pour organiser les données et gérer les fonctionnalités. Voici un...

Tuto : Laravel Ecommerce

Laravel 11 et Voyager forment un duo puissant pour développer rapidement des applications e-commerce robustes et personnalisables. Pourquoi : -...

Bases : Construire un projet Laravel

La création d’un projet Laravel efficace nécessite une approche bien structurée pour organiser les données et gérer les fonctionnalités. Voici un...

Tuto : Laravel Ecommerce

Laravel 11 et Voyager forment un duo puissant pour développer rapidement des applications e-commerce robustes et personnalisables. Pourquoi : -...