Je souhaite installer Redis, Memcached ou d'autres modules pour PECL 7 sur un environnement AWS Elastic Beanstalk fonctionnant sous PHP 8.1 à l'aide des piles Amazon Linux 2.
Brève description
Pour installer les modules PECL 7, vous devez créer un fichier de configuration (.ebextension) qui inclut des commandes pour :
- installer les dépendances ;
- installer le module PECL ;
- créer ou modifier des fichiers de configuration.
Résolution
1. Configurez le répertoire .ebextensions à la racine du groupe source de votre application. Par exemple :
|-- .ebextensions
| |-- redis/memcached.config
| |-- other .config files
|-- other application files
Pour en savoir plus, consultez la section Personnalisation d'environnement avancée avec fichiers de configuration (.ebextensions).
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.
2. Dans le répertoire .ebextensions, créez un fichier de configuration qui inclut les commandes suivantes pour votre module.
Pour les 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
Le fichier de configuration Redis effectue les opérations suivantes :
- Il installe le module Redis et vérifie que l'installation s’est bien effectuée (01_install_redis)
- Il supprime l'extension Redis du fichier /etc/php.ini (02_remove_extension)
- Il crée un fichier de configuration appelé 41-redis.ini dans le répertoire /etc/php.d/ (03_create_conf)
Pour les 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
Le fichier de configuration Memcached effectue les opérations suivantes :
- Il installe le module Memcached et vérifie que l'installation s’est bien effectuée (01_install_memcached)
- Il supprime l'extension Redis du fichier /etc/php.ini (02_remove_extension)
- Il crée un fichier de configuration appelé 41-memcached.ini dans le répertoire /etc/php.d/ (03_create_conf)
Remarque : un nouveau fichier .ebextension doit impérativement être testé avant d’être ajouté à un environnement de production.