Amazon Linux 2 スタックを使用して PHP 7.4 上で実行している Elastic Beanstalk 環境に PECL 7 モジュールをインストールするにはどうすればよいですか?

最終更新日: 2021 年 3 月 22 日

Amazon Linux 2 スタックを使用する PHP 7.4 上で実行している AWS Elastic Beanstalk 環境に Redis、Memcached、またはその他の PECL 7 用のモジュールをインストールしたいと考えています。

簡単な説明

PECL 7 モジュールをインストールするには、以下の処理を実行するコマンドを含む設定ファイル (.ebextension) を作成する必要があります。

  • 依存関係のインストール
  • PECL モジュールのインストール
  • 設定ファイルを作成または変更する

注意: Amazon Linux 2 スタックの場合は、「Amazon Linux 1 スタックを使用する PHP で実行されている Elastic Beanstalk 環境に、PECL 7 モジュールをインストールする方法を教えてください。」を参照してください。

解決方法

1.    アプリケーションのソースバンドルのルートに .ebextensions ディレクトリをセットアップします。例:

|-- .ebextensions
|        |-- redis/memcached.config
|        |-- other .config files
|-- other application files

詳細については、「設定ファイル (.ebextensions) による高度な環境のカスタマイズ」を参照してください。

注意: すべての設定ファイルは .ebextensions フォルダに格納します。Elastic Beanstalk 環境では、.config 拡張子で終わるファイルだけが使用されます。

2.    .ebextensions ディレクトリで、モジュールに対する以下のコマンドを含む設定ファイルを作成します。

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

Redis 設定ファイルでは、次の処理が行われます。

  • Redis モジュールをインストールし、インストールが正常に行われたことをテストする (01_install_redis)
  • /etc/php.ini ファイルから Redis 拡張機能を削除する (02_remove_extension)
  • 41-redis.ini という設定ファイルを /etc/php.d/ に作成する (03_create_conf)

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

Memcached 設定ファイルでは、次の処理が行われます。

  • Memcached モジュールをインストールし、インストールが正常に行われたことをテストする (01_install_memcached)
  • /etc/php.ini ファイルから Redis 拡張機能を削除する (02_remove_extension)
  • 41-memcached.ini という設定ファイルを /etc/php.d/ に作成する (03_create_conf)

注意: 本稼働環境に追加する前に新しい .ebextension を必ずテストしてください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?