Comment installer les modules PECL 7 dans les environnements Elastic Beanstalk fonctionnant sous PHP 7.4 avec les piles Amazon Linux 2 ?

Dernière mise à jour : 22/03/2021

Je souhaite installer Redis, Memcached ou d'autres modules pour PECL 7 dans un environnement AWS Elastic Beanstalk fonctionnant sous PHP 7.4 à l'aide de piles Amazon Linux 2.

Brève description

Pour installer les modules PECL 7, vous devez créer un fichier de configuration (.ebextension) qui contient des commandes permettant d'effectuer ce qui suit :

  • Installer les dépendances
  • Installer le module PECL
  • Créer ou modifier des fichiers de configuration

Remarque : pour les piles Amazon Linux 1, consultez Comment installer les modules PECL 7 dans les environnements Elastic Beanstalk fonctionnant sous PHP avec les piles Amazon Linux 1 ?

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 plus d'informations, consultez Personnalisation d'environnement avancée avec des fichiers de configuration (.ebextensions).

Remarque : tous les fichiers de configuration sont stockés dans le dossier .ebextensions. L'environnement Elastic Beanstalk utilise uniquement les fichiers qui se terminent par l'extension .config.

2.    Dans le répertoire .ebextensions, créez un fichier de configuration contenant 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 teste le succès de l'installation (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 sous /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 teste le succès de l'installation (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 sous /etc/php.d/ (03_create_conf)

Remarque : testez toujours un nouveau fichier .ebextension avant de l'ajouter à un environnement de production.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?