如何在通过 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/03_create_conf)上创建一个名为 41-redis.ini 的配置文件

对于 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/03_create_conf)上创建一个名为 41-memcached.ini 的配置文件

**注意:**在添加到生产环境之前,请务必测试新的 .ebextension

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