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 !