Installer l'extension MongoDB pour PHP dans Amazon Web Service
L’installation d’une extension PHP dans Amazon Web Service Elastic Beanstalk n’est pas aussi simple qu’il y paraît, en particulier pour MongoDB.
La documentation à ce sujet n’est d’ailleurs pas à jour (au moment où j’écris cet article) : https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/php-configuration-phpini.html
Nous allons voir comment procéder.
Contexte
Je tiens à préciser que j’écris cet article alors que je découvre les services offerts par AWS (Amazon Web Service).
Il est possible que ce que je décrive ne convienne pas aux puristes.
Dans cet article, il s’agit plus d’un retour d’expérience d’un débutant qui souhaite tester le déploiement d’une application PHP dans AWS Elastic Beanstalk avec la possibilité de se connecter à un replicaset MongoDB.
Je ne m’attarderai pas sur l’utilisation d’AWS, la documentation officielle est très complète.
Version officielle
Dans la documentation en ligne, il est indiqué qu’un simple fichier de configuration suffit.
Pour cela, dans l’application, il faut créer le fichier .ebextensions/mongodb.config
à la racine.
Pour ma part, impossible de disposer de la connectique à MongoDB de cette façon.
J’ai fait l’essai avec un projet simple ne contenant qu’un fichier phpinfo.php
, la catégorie MongoDB n’était pas affichée.
Celle que j’ai utilisée
Après plusieurs recherches, voici la solution que j’ai retenue (et qui fonctionne pour mon besoin).
Il faut toujours créer le fichier .ebextensions/mongodb.config
à la racine du projet.
Mais celui-ci exécutera la commande permettant d’installer l’extension via PECL :
Le fichier décrit la commande install_mongodb_driver
(vous pouvez choisir le nom qui vous convient).
Elle sera exécutée si le résultat de l’instruction test
est 0 (code de sortie de la commande qu’elle indique).
La ligne command
utilise la commande PECL pour installer l’extension (ici en version 1.7.4).
Il suffit d’adapter la version de l’extension à votre besoin.
Vous pouvez vous référer au référentiel officiel pour identifier la version qui correspond à votre projet : https://pecl.php.net/package/mongodb
Lorsque votre application est déployée, vous disposez de l’extension MongoDB.