Premier projet Laravel 5.4 : Déployer le projet en production (Part. 7/7)

Après avoir développé notre application en local, on va l’installer sur un serveur de test ou de production. Pour cela, on va devoir réaliser quelques tâches pour que ça se passe sereinement.

Dans cet article, je ne vais rien utiliser pour automatiser les tâches liées au déploiement afin qu’on puisse bien comprendre ce qui est impacté à ce moment là.

L’environnement

Pour déployer notre application on va créer un fichier .env dédié à notre environnement de production

.env.production

Ici, on a donc renseigné tous les paramètres en rapport avec notre environnement de production à savoir :

  • APP_ENV qui indique sur quel environnement on travaille
  • APP_DEBUG à false car on ne veut pas que les visiteurs aient des erreurs explicites
  • APP_URL pour l’url de notre site
  • Et les paramètres classiques de connexion à notre base de données

Pré-requis de l’hébergement

  • PHP >= 5.5.9
  • Extension PHP PDO
  • Extension PHP OpenSSL
  • Extension PHP Mbstring
  • Extension PHP Tokenizer

Installation

Dans la majorité des cas, Composer n’est pas installé sur l’hébergement dont on dispose. Si vous êtes chez OVH, vous pouvez lire cet article : Installer et utiliser Composer sur un hébergement OVH

On va se connecter en SSH à notre serveur (par exemple avec Putty) et installer Composer en ligne de commande :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

On pourra vérifier que Composer est bien installé comme ceci par exemple (ou une autre commande) :

php composer.phar list

Maintenant, on va vérifier que toutes les extensions sont bien activées :

php -i

Cette commande vous donne toutes les informations sur l’installation de php et de ses modules.

Déploiement

On peut maintenant déployer notre projet sur notre hébergement.

php composer create-project --prefer-dist laravel/laravel my-path/my-project

S je me rends sur mon URL, j’ai effectivement un site Laravel :

La solution « à la main »

Après avoir créer une base de données sur notre serveur, on va pouvoir copier les fichiers spécifiques à notre projet :

  • le fichier composer.json
  • le fichier .env (de production)
  • et les dossiers app, routes, database*, resources et public

(*) Note: Les migrations qui inserent des données pour vos tests ou autre ne doivent pas être envoyées bien sûr hein !

Jouer les migrations afin d’avoir des données et que les tables existes surtout :

cd ./my-project-path-on-my-server
php artisan migrate

Note: Si ce n’est pas possible, il faudra faire « à l’ancienne » un export de notre base de données.

Il faudra faire une mise à jour de composer si on a des dépendances, comme dans notre cas avec LaravelCollective pour les formulaires (dans le fichier composer.json).

php composer update

Et mettre à jour le fichier de configuration de l’application dans config/app.php pour vérifier que les alias des dépendances soient bien inscrites (cf. l’article sur l’ajout de dépendances).

Et voilà notre application en ligne !

Il y a des méthodes plus efficaces pour déployer notre site mais je voulais déjà décortiquer le mécanisme complet avant d’automatiser ces tâches que nous venons de faire 🙂

La démo est disponible ici : http://demo.marieemmanuellehamon.fr/laravel-test/public/posts
Télécharger le zip du code source

2 réflexions au sujet de « Premier projet Laravel 5.4 : Déployer le projet en production (Part. 7/7) »

Laisser un commentaire