如何在使用 Amazon Linux 2 堆疊在 PHP 8.1 上執行的 Elastic Beanstalk 環境中安裝 PECL 7 模組?

1 分的閱讀內容
0

我想在使用 Amazon Linux 2 堆疊在 PHP 8.1 上執行的 AWS Elastic Beanstalk 環境中安裝 Redis、Memcached 或其他 PECL 7 模組。

簡短描述

若要安裝 PECL 7 模組,您必須建立包含命令的組態檔案 (.ebextension) 來執行以下操作:

  • 安裝相依性
  • 安裝 PECL 模組
  • 建立或修改組態檔案

解決方法

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)
  • /etc/php.d/ 中建立名為 41-redis.ini 的組態檔案 (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)
  • /etc/php.d/ 中建立名為 41-memcached.ini 的組態檔案 (03_create_conf)

**注意:**始終先測試新的 .ebextension,然後再新增至生產環境。

AWS 官方
AWS 官方已更新 2 年前