Configurer AWS Beanstalk pour exécuter une application Laravel
Table des matières

Configurer AWS Beanstalk pour exécuter une application Laravel

Le déploiement d’une application Laravel sur la plateforme Linux 2 d’AWS Beanstalk nécessite quelques paramétrages supplémentaires.

Nous allons voir dans cet article comment les mettre en place.

En effet, bien que la documentation officielle soit très complète (https://docs.aws.amazon.com/fr_fr/elasticbeanstalk/latest/dg/php-laravel-tutorial.html), il manque quelques précisions au moment où j’écris cet article.

Contexte

Je ne reviendrai pas ici sur la création d’une application Laravel, la documentation et très complète en ligne.

De même, pour le déploiement dans Beanstalk, vous pouvez vous référer à la documentation officielle : https://docs.aws.amazon.com/fr_fr/elasticbeanstalk/latest/dg/php-laravel-tutorial.html

Pour rédiger cet article, j’ai utilisé la version 7 du framework Laravel.

Dans Beanstalk, j’ai utilisé la plateforme suivante :

  • Plateforme : PHP
  • Branche de plateforme : PHP 7.3 running on 64bit Amazon Linux 2
  • Version de plateforme : 3.0.2

Vous pourrez trouver les informations sur les plateformes PHP ici : https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.PHP

Problème

Si vous déployez votre application Laravel directement sur cette version 2 de la plateforme, les redirections ne seront pas possibles puisque Nginx n’est pas configuré pour les prendre en compte (contrairement à Apache, via les fichiers .htaccess).

Le but est donc de configurer notre environnement pour permettre les redirections vers le fichier index.php.

Pour cela, je me baserai sur :

Solution

Le principe est d’ajouter à la configuration Nginx la redirection vers le fichier index.php pour que le framework Laravel gère les différentes routes.

Pour cela, il faut créer le fichier .platform/nginx/conf.d/elasticbeanstalk/laravel.conf à la racine de votre projet.

Le nom du fichier n’a pas d’importance, mais il faut respecter les règles suivantes :

  • Le fichier doit être créé dans l’arborescence .platform/nginx/conf.d/elasticbeanstalk/
  • L’extension du fichier doit être .conf

Ce fichier doit contenir :

location / {
  try_files $uri $uri/ /index.php?$query_string;
}

Vous pouvez bien entendu ajouter les configurations supplémentaires que vous souhaitez, le but ici est de gérer les redirections.

Il ne vous reste plus qu’à déployer votre application dans Beanstalk.