Deployer Laravel
Tags: php, webdev, laravel
Published: 2023-12-26 12:33:21

Déployer les mises à jour de votre projet Laravel sur le serveur peut sembler complexe, mais nous pouvons le diviser en quatre étapes simples : gérer les modifications de code, gérer les dépendances, traiter les mises à jour de la base de données et nettoyer l'environnement. Explorons chacune de ces étapes de manière simple.

**Phase 0 : Préparation au déploiement - Assurer la stabilité du système**

Avant de déployer des changements, il est essentiel de prendre en compte les perturbations potentielles pendant le processus. Deux options s'offrent à vous :

1. Rendre le système inaccessible pendant le déploiement :
   - Utilisez la commande `php artisan down` au début du processus.
   - Cela rendra votre application inaccessible avec un message "SERVICE UNAVAILABLE" et un code HTTP 503.
   - Les utilisateurs ne pourront y accéder qu'une fois que vous l'aurez ramenée en ligne avec `php artisan up`.

2. Outils de déploiement sans interruption :
   - Explorez des outils de déploiement sans interruption, discutés plus en détail ultérieurement.

**Phase 1 : Mise à jour du code**

1. Mettez à jour votre code avec la commande `git pull` depuis la branche sur laquelle vous travaillez.
   - Par exemple, pour le serveur de production : `git pull origin main`.
   - Pour un serveur de test : `git pull origin develop`.

**Phase 2 : Gestion des dépendances**

1. Modifications locales :
   - Utilisez Composer sur votre environnement de développement local pour installer de nouveaux packages ou mettre à jour les existants avec `composer require` ou `composer update`.
   - Cela met à jour le fichier `composer.lock` qui enregistre les versions exactes des packages.

2. Pousser les changements :
   - Poussez le fichier `composer.lock` mis à jour sur votre référentiel Git.

3. Déploiement :
   - Lorsque vous êtes prêt à déployer, exécutez `composer install` sur le serveur.

**Phase 3 : Gestion des changements de base de données**

1. Appliquer les changements à la base de données avec `php artisan migrate`.
   - Pour une exécution automatique, utilisez `php artisan migrate --force`.

2. Ajouter des données initiales :
   - Automatisez cela directement dans le fichier de migration ou utilisez `php artisan db:seed` pour l'exécution manuelle.

**Phase 4 : Gestion des changements d'environnement**

1. Effacer les caches avec `php artisan cache:clear`, `php artisan route:clear`, et `php artisan view:clear`.

2. Pour une version spécifique de PHP, rechargez le service PHP-FPM avec `echo "" | sudo -S service php8.1-fpm reload`.

3. Redémarrez les files d'attente si votre application utilise des tâches en arrière-plan.

**Phase finale : Rétablir l'application**

Si vous avez utilisé `php artisan down` au début, n'oubliez pas de la rendre à nouveau accessible avec `php artisan up`.

**Script complet pour le déploiement :**

```bash
cd /home/some-subfolders/your-app-folder
php artisan down
git pull origin main
composer install --no-interaction --no-dev
php artisan migrate --force
php artisan cache:clear
php artisan route:clear
php artisan view:clear
echo "" | sudo -S service php8.1-fpm reload
php artisan up
```

N'oubliez pas que ces étapes peuvent varier en fonction de votre application, de votre configuration Git, de votre environnement serveur, etc. Utilisez ces étapes comme base, en les ajustant selon vos besoins spécifiques.