Je souhaite utiliser PHP 8.1 sur la branche de plateforme Amazon Linux 2 pour installer Redis, Memcached ou d'autres modules PECL 7 sur mon environnement AWS Elastic Beanstalk.
Brève description
Pour installer les modules PECL 7, vous devez créer un fichier de configuration incluant des commandes qui permettent d'effectuer les actions suivantes :
- installer les dépendances ;
- installer le module PECL ;
- créer ou modifier des fichiers de configuration.
Enregistrez ensuite le fichier de configuration dans le dossier .ebextensions.
Remarque : Pour obtenir des exemples, des recommandations et des exigences, consultez la section Personnalisation avancée de l'environnement à l'aide de fichiers de configuration (.ebextensions). Consultez également la section Extension des plateformes Elastic Beanstalk Linux.
Résolution
Procédez comme suit :
-
Configurez le répertoire .ebextensions à la racine du groupe source de votre application.
Exemple :
|-- .ebextensions
| |-- redis/memcached.config
| |-- other .config files
|-- other application files
Remarque : Tous les fichiers de configuration sont stockés dans le dossier .ebextensions. L'environnement Elastic Beanstalk utilise uniquement des fichiers qui se terminent par l'extension .config.
-
Dans le répertoire .ebextensions, créez un fichier de configuration qui inclut les commandes suivantes pour votre module.
Configuration des modules Redis :
commands:
01_install_redis:
command: /usr/bin/yes 'no' | /usr/bin/pecl install redis
test: '! /usr/bin/pecl info redis'
02_remove_extension:
command: /bin/sed -i -e '/extension="redis.so"/d' /etc/php.ini
03_create_conf:
command: /bin/echo 'extension="redis.so"' > /etc/php.d/41-redis.ini
Remarque : Dans le fichier de configuration précédent, 01_install_redis installe le module Redis et teste la réussite de l'installation. 02_remove_extension supprime l'extension Redis du fichier /etc/php.ini. 03_create_conf crée un fichier de configuration nommé 41-redis.ini dans le répertoire /etc/php.d/.
Configuration des modules Memcached :
packages:
yum:
libmemcached-devel: []
commands:
01_install_memcached:
command: /usr/bin/yes 'no'| /usr/bin/pecl install memcached
test: '! /usr/bin/pecl info memcached'
02_remove_extension:
command: /bin/sed -i -e '/extension="memcached.so"/d' /etc/php.ini
03_create_conf:
command: /bin/echo 'extension="memcached.so"' > /etc/php.d/41-memcached.ini
Remarque : Dans le fichier de configuration précédent, 01_install_memcached installe le module Memcached et teste la réussite de l'installation. 02_remove_extension supprime l'extension Redis du fichier /etc/php.ini. 03_create_conf crée un fichier de configuration appelé 41-memcached.ini dans le répertoire /etc/php.d/.
-
Testez toujours un nouveau fichier .ebextensions avant de l'ajouter à un environnement de production.