如何通过 Amazon Linux 1 堆栈在运行 PHP 的 Elastic Beanstalk 环境中安装 PECL 7 模块?
上次更新时间:2020 年 7 月 8 日
我想要通过 Amazon Linux 1 堆栈在运行 PHP 7.3 的 AWS Elastic Beanstalk 环境中安装 Redis、Memcached 或其他 PECL 7 模块。
简短描述
要安装 PECL 7 模块,您必须:
安装任何依赖项。
创建 Linux 配置文件 (.ebextensions) 以安装和运行 PECL 7 模块。
重要提示: 下面的 PHP 扩展名已包含在 Amazon Linux 2 上的 PHP 平台版本中:
php-pecl-redis(用于与 Redis 键值存储通信)
php-pecl-memcached(用于 Memcached 缓存守护程序)
注意:您可以在具备 PEAR 支持的任何 PHP 环境中安装 PECL PHP 扩展。默认情况下,PECL 已安装于 Elastic Beanstalk PHP 堆栈上并且由 php-pear RPM 提供。有关更多信息,请参阅 PECL 网站上的 redis。
解决方法
安装 Redis 扩展
1. 在应用程序源捆绑包根目录中的 .ebextensions 目录中,根据以下示例创建一个 .ebextension 文件:
commands:
01_install_redis:
command: /usr/bin/yes 'no'| /usr/bin/pecl7 install redis
test: '! /usr/bin/pecl7 info redis'
02_rmfromphpini:
command: /bin/sed -i -e '/extension="redis.so"/d' /etc/php.ini
03_createconf:
command: /bin/echo 'extension="redis.so"' > /etc/php-7.3.d/41-redis.ini
test: /usr/bin/pecl7 info redis
.ebextension 执行以下操作:
安装 Redis 扩展 (01_install_redis)
在 /etc/php.ini 文件中删除 pecl7 目录创建的条目,以加载扩展 (02_rmfromphpini)
创建一个用于加载 Redis 模块 (03_createconf) 的配置文件,这需要在 Redis 模块之前加载 JSON 模块(默认已安装)
php -m | egrep '(redis)'
您将收到以下输出:
$ php -m | egrep '(redis)'
redis
安装 Memcached 扩展
1. 在应用程序源捆绑包根目录中的 .ebextensions 目录中,根据以下示例创建一个 .ebextension 文件:
packages:
yum:
libmemcached-devel: []
上述 .ebextension 将安装 libmemcached-devel,这是安装 Memcached 扩展的先决条件。
2. 在应用程序源捆绑包根目录中的 .ebextensions 目录中,根据以下示例创建一个 .ebextension 文件:
commands:
01_install_memcached:
command: /usr/bin/yes 'no'| /usr/bin/pecl7 install memcached
test: '! /usr/bin/pecl7 info memcached'
02_rmfromphpini:
command: /bin/sed -i -e '/extension="memcached.so"/d' /etc/php.ini
03_createconf:
command: /bin/echo 'extension="memcached.so"' > /etc/php-7.3.d/41-memcached.ini
test: '/usr/bin/pecl7 info memcached'
.ebextension 执行以下操作:
安装 Memcached 扩展 (01_install_memcached)
在 /etc/php.ini 文件中删除 pecl7 命令创建的条目,以加载扩展 (02_rmfromphpini)
创建一个用于加载 Memcached 扩展 (03_createconf) 的配置文件
php -m | egrep '(memcached)'
您将收到以下输出:
$ php -m | egrep '(memcached)'
memcached
这篇文章对您有帮助吗?
您是否需要账单或技术支持?