上次更新时间:2021 年 3 月 22 日
我想要通过 Amazon Linux 2 堆栈在运行 PHP 7.4 的 AWS Elastic Beanstalk 环境中安装 Redis、Memcached 或其他 PECL 7 模块。
要安装 PECL 7 模块,您必须创建包含命令的配置文件 (.ebextension) 以执行以下操作:
安装依赖项 安装 PECL 模块 创建或修改配置文件注意:对于 Amazon Linux 2 堆叠,请参阅如何基于 PHP 与 Amazon Linux 1 堆栈运行的 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 文件 (02_remove_extension) 中删除 Redis 扩展名 在 /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 文件 (02_remove_extension) 中删除 Redis 扩展名 在 /etc/php.d/ 创建名为 41-memcached.ini 的配置文件 (03_create_conf)注意:始终先测试新的 .ebextension,然后再添加到生产环境。