如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?
How to Install PHP IMAP Extension on AWS Elastic Beanstalk Using Configuration Files (.ebextensions)?
有谁知道如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展?
我正在使用 64 位亚马逊 Linux 2017.03 v2.4.0 运行 PHP 7.0.16
我尝试了以下几种方法:
第一种方式
我试过在配置文件中使用 files
但它不起作用,配置文件名是 .ebextensions
目录中的 phpini.config
,设置如下:
files:
"/etc/php.d/phpimap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
额外的 .ini
文件通过显示 /etc/php-7.0.d/phpimap.ini
解析为 phpinfo()
,但 IMAP 不会安装。
第二种方式
使用 container_command
安装 php-imap 但出现错误。
container_commands:
install_php_imap:
command: yum install php55-imap
错误如下图:
第三种方式
使用组合 commands
和 files
,它只能成功安装 IMAP 和依赖项(php common)但它不会激活 IMAP
一个。通过添加以下脚本在我的 .ebextensions 中创建 installdependencies.config:
commands:
install_phpcommon:
test: '[ ! -f /etc/php.d/curl.ini ] && echo "php common not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-common-7.0.16-1.w6.x86_64.rpm
b.通过添加以下脚本在我的 .ebextensions 中创建 phpini.config:
commands:
install_phpimap:
test: '[ ! -f /etc/php.d/imap.ini ] && echo "php imap not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-imap-7.0.16-1.w6.x86_64.rpm
files:
"/etc/php.d/imap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
4th Way 我正在通过将 upload_max_filesize
、post_max_size
和 extension=imap.so
添加到 zzzphp.ini
并且仅添加两个值来进行测试包括 upload_max_filesize
和 post_max_size
。 extension=imap.so
未包含在 zzzphp.ini
文件中。
下面是 .ebextensions
中的脚本 phpini.config
:
commands:
install_phpimap:
test: '[ ! -f /etc/php.d/imap.ini ] && echo "php imap not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-imap-7.0.16-1.w6.x86_64.rpm
files:
"/etc/php.d/zzzphp.ini":
mode: "644"
content: |
upload_max_filesize = 50M
post_max_size = 58M
extension=imap.so
有什么建议吗?
提前致谢。
您在 php 的配置文件中包含 php-imap 扩展名,但这不足以安装它。
您将不得不向您选择的 EBS 配置方法传递一些信息,告诉它在系统级别安装 php-imap(或在该环境中调用的任何名称)。
终于开始了
在 .ebextensions 中创建两个文件如下:
installdependencies.config,如果需要,安装phpcommon
commands:
01_install_phpcommon:
command:
sudo yum -y install php70-common
phpini.config,安装php imap 并启用imap
commands:
02_install_phpimap:
command:
sudo yum -y install php70-imap
files:
"/etc/php.d/zzzphp.ini":
mode: "644"
content: |
extension=imap.so
对我来说,phpini.config 中的以下代码解决了这个问题。请注意根据 php 版本的文件夹名称。我的 php 版本是 7.2,因此下面的代码有效:
commands:
install_phpimap:
test: '[ ! -f /etc/php-7.2.d/imap.ini ] && echo "php imap not installed"'
command:
sudo yum -y install php72-imap
files:
"/etc/php-7.2.d/imap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
我遵循了此处的所有建议,但我的命令一直失败,因为我的作曲家需要 imap 支持并且容器命令在 运行 之后...
以下是对我有用的方法:
packages:
yum:
php72-imap.x86_64: []
这对我有用,也使用 ebextensions(我是 运行 带有 PHP 7.2 的容器,它应该适用于您的环境,相应地替换):
packages:
yum:
php72-imap: []
有谁知道如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装和启用 PHP IMAP 扩展?
我正在使用 64 位亚马逊 Linux 2017.03 v2.4.0 运行 PHP 7.0.16
我尝试了以下几种方法:
第一种方式
我试过在配置文件中使用 files
但它不起作用,配置文件名是 .ebextensions
目录中的 phpini.config
,设置如下:
files:
"/etc/php.d/phpimap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
额外的 .ini
文件通过显示 /etc/php-7.0.d/phpimap.ini
解析为 phpinfo()
,但 IMAP 不会安装。
第二种方式
使用 container_command
安装 php-imap 但出现错误。
container_commands:
install_php_imap:
command: yum install php55-imap
错误如下图:
第三种方式
使用组合 commands
和 files
,它只能成功安装 IMAP 和依赖项(php common)但它不会激活 IMAP
一个。通过添加以下脚本在我的 .ebextensions 中创建 installdependencies.config:
commands:
install_phpcommon:
test: '[ ! -f /etc/php.d/curl.ini ] && echo "php common not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-common-7.0.16-1.w6.x86_64.rpm
b.通过添加以下脚本在我的 .ebextensions 中创建 phpini.config:
commands:
install_phpimap:
test: '[ ! -f /etc/php.d/imap.ini ] && echo "php imap not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-imap-7.0.16-1.w6.x86_64.rpm
files:
"/etc/php.d/imap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
4th Way 我正在通过将 upload_max_filesize
、post_max_size
和 extension=imap.so
添加到 zzzphp.ini
并且仅添加两个值来进行测试包括 upload_max_filesize
和 post_max_size
。 extension=imap.so
未包含在 zzzphp.ini
文件中。
下面是 .ebextensions
中的脚本 phpini.config
:
commands:
install_phpimap:
test: '[ ! -f /etc/php.d/imap.ini ] && echo "php imap not installed"'
command:
yum -y install https://archipelagointernational.s3.amazonaws.com/libs/php70w-imap-7.0.16-1.w6.x86_64.rpm
files:
"/etc/php.d/zzzphp.ini":
mode: "644"
content: |
upload_max_filesize = 50M
post_max_size = 58M
extension=imap.so
有什么建议吗?
提前致谢。
您在 php 的配置文件中包含 php-imap 扩展名,但这不足以安装它。
您将不得不向您选择的 EBS 配置方法传递一些信息,告诉它在系统级别安装 php-imap(或在该环境中调用的任何名称)。
终于开始了
在 .ebextensions 中创建两个文件如下:
installdependencies.config,如果需要,安装phpcommon
commands:
01_install_phpcommon:
command:
sudo yum -y install php70-common
phpini.config,安装php imap 并启用imap
commands:
02_install_phpimap:
command:
sudo yum -y install php70-imap
files:
"/etc/php.d/zzzphp.ini":
mode: "644"
content: |
extension=imap.so
对我来说,phpini.config 中的以下代码解决了这个问题。请注意根据 php 版本的文件夹名称。我的 php 版本是 7.2,因此下面的代码有效:
commands:
install_phpimap:
test: '[ ! -f /etc/php-7.2.d/imap.ini ] && echo "php imap not installed"'
command:
sudo yum -y install php72-imap
files:
"/etc/php-7.2.d/imap.ini":
mode: "000755"
owner: root
group: root
content: |
extension=imap.so
我遵循了此处的所有建议,但我的命令一直失败,因为我的作曲家需要 imap 支持并且容器命令在 运行 之后... 以下是对我有用的方法:
packages:
yum:
php72-imap.x86_64: []
这对我有用,也使用 ebextensions(我是 运行 带有 PHP 7.2 的容器,它应该适用于您的环境,相应地替换):
packages:
yum:
php72-imap: []