Comment installer des modules PECL 7 sur des environnements Elastic Beanstalk exécutés sous PHP 8.1 avec des piles Amazon Linux 2 ?

Lecture de 2 minute(s)
0

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.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans