Déployer une application Laravel 5 avec Git sur un hébergement cPanel

Cet article explique comment déployer une application développée avec Laravel 5 sur un hébergement cPanel avec Git afin de faciliter le processus de déploiement.

1. Configurer SSH et Git

SSH est activé par défaut sur les packs d’hébergement Laravel. Vous pouvez importer votre clé publique via cPanel > Avancé > SSH/Shell Access, sinon vous pouvez vous connecter avec votre mot de passe cPanel à chaque fois.

Vérifier la connexion SSH :

ssh [cpanel-user]@[domaine.com]

Vérifiez que Git est bien installé sur votre espace :

git --version

Créer un dossier bin dans votre répertoire racine :

mkdir ~/bin

2. Configurer PHP

Sur votre espace d’hébergement Nindo Host :

cd ~
vim .bash_profile

Remplacez :

PATH=$PATH:$HOME/bin

par :

PATH=$HOME/bin:$PATH

Cela donne la priorité au répertoire bin par rapport aux autres chemins.

Ensuite liez la bonne version PHP à votre répertoire bin :

cd ~/bin
ln -s /usr/local/php56/bin/php-cli php

Fermez le terminal et reconnectez-vous à nouveau puis testez la version PHP :

php --version

Cela devrait afficher un résultat similaire à :

PHP 5.6.30 (cli) (built: Jan 19 2017 12:09:47)

Pour Laravel 5.2, nous aurons besoin d’au moins PHP 5.5.9.

3. Créer le répertoire de l’application

À partir de la console, créer le répertoire [app] dans votre racine, où [app] est le nom de votre application, n’oubliez pas de le remplacer pour tous les commandes qui suivent :

cd ~
mkdir [app]

Ce répertoire hébergera votre application Laravel.

Il est possible d’installer l’application sur le domaine principal http://domaine.com ou sur un sous-domaine de type http://[app].domaine.com. Suivez les instructions de la section suivante selon votre choix :

Domaine principal

Remplacez le répertoire public_html par un lien symbolique à [app]/public (vérifiez que public_html est bien vide avant de le supprimer, son contenu ne peut pas être restauré):

rm -rf public_html
ln -s [app]/public public_html

Sous-domaine

Créez un sous-domaine pour configurer le répertoire racine à /[app]/public :

  • Allez à cPanel > Sous-domaines
  • Ajoutez un sous-domaine et configurez le répertoire racine comme suit :
    • Sous-domaine : [app]
    • Répertoire racine : /[app]/public

4. Téléchargez Composer

Sur votre espace Nindo Host :

cd ~/bin
curl -sS https://getcomposer.org/installer | php
ln -s ./composer.phar composer

Vérifiez qu’il a bien été installé :

composer --version

5. Configurer Git pour les déploiements automatiques

Créez le dépôt Git sur votre espace d’hébergement Nindo Host :

# Créez le répertoire git où le dépôt sera hébergé et maintenu
cd ~
mkdir git

# Créez le dépôt
cd git
git init --bare --shared [app].git

# Créez le script de traitement post-receive
cd [app].git/hooks
touch post-receive

# Rendez le hook exécutable
chmod +x post-receive

# Configurer l hooke
vim post-receive

Mettez dans le fichier post-receive toutes les commandes et opérations à exécuter après le push :

~/git/[app].git/hooks/post-receive
#!/bin/sh

# Configurer et exporter la variable PATH
PATH="/home/[siteground-user]/bin":$PATH
export PATH

# Répertoires de l'applications
APP_WEB_DIR="/home/[cpanel-user]/[app]"
APP_GIT_DIR="/home/[cpanel-user]/git/[app].git"

# Checkout le dernier commit dans le répertoire de l'application
git --work-tree=${APP_WEB_DIR} --git-dir=${APP_GIT_DIR} checkout -f

# Nettoyer le répertoire de l'application
# Utilisez -e "[pattern]" pour exclure certains fichiers ou répertoires du nettoyage,
# comme ils le sont dans le fichier .gitignore, par exemple :
# git --work-tree=${APP_WEB_DIR} clean -fd

# Lancez composer
cd ${APP_WEB_DIR}
composer install
   
# Vérifiez que le répertoire storage a bien les permission d'écriture pour le groupe
chmod -R g+w storage

# Optimisations
echo "Lancement des optimisations"
php artisan config:cache
php artisan route:cache

# Faîtes vos autres traitements ici, par exemple effectuez les modifications de connexion à la base de données...
# php artisan migrate
# ...

6. Ajouter les informations de « production » à votre dépôt

Sur votre ordinateur :

cd /chemin/a/votre/projet
git remote add production ssh://[cpanel-user]@[domaine.com]/~/git/[app].git

Maintenant vous pouvez déployer votre projet sur votre espace d’hébergement Nindohost (en effectuant un push à la production) avec :

git push production master

Le code de votre application apparaîtra dans le répertoire /[app] sur votre espace d’hébergement Nindohost.

Partager :
Autres articles sélectionnés pour vous