![](/img/trans.png)
[英]Could I add Python2 to AWS Elastic Beanstalk PHP platform?
[英]How do I add php ext-mailparse to an elastic beanstalk instance?
我一直無法將MailParse PHP擴展名( https://pecl.php.net/package/mailparse )添加到運行PHP 7的Elastic Beanstalk實例中。我的目標是將其添加到引導序列中,以便創建實例時始終安裝。
我的問題是Amazon的EB的Linux版本不提供PECL,因此我不確定如何加載它。
我曾嘗試采用各種方法來安裝其他php擴展/模塊,但沒有取得任何成功。
https://packagist.org/packages/php-mime-mail-parser/php-mime-mail-parser-我嘗試通過我的composer.json文件添加此文件,但由於未安裝“ ext-mailparse”而失敗。
http://wiki.cerbweb.com/Installing_PHP_Mailparse_Ubuntu-我嘗試運行這些命令來安裝擴展程序,但第一個安裝依賴項的命令失敗。
https://serverpilot.io/community/articles/how-to-install-the-php-mailparse-extension.html- “ sudo:apt-get:未找到命令”
我覺得有一種更簡單的方法可以完成此操作,但我遇到了麻煩。 有人可以幫忙嗎?
創建兩個文件:
.ebextensions / 01mailparse.config
commands:
01install_mailparse:
command: "pecl7 install --force mailparse"
請注意--force
標志的使用。 我添加了此內容,因為有時AWS EB會自動重新部署該應用程序,如果PECL發現已安裝擴展名,它就會失敗。
.ebextensions / 02prioritize.config
commands:
01change_mailparse_load_priority:
command: "sed '/extension=\"mailparse.so\"/d' /etc/php.ini > /etc/php.ini && echo 'extension=\"mailparse.so\"' > /etc/php-7.0.d/zz_mailparse.ini"
這從php.ini
文件中刪除了mailparse擴展注冊(PECL在頂部添加了一行,很奇怪),並將其注冊為要加載到列表的末尾(zz前綴)。
請注意,我使用了兩個文件。 由於某種原因,在同一個文件上使用兩個命令正在制作部署文件。 如果有人可以澄清我將不勝感激。
要添加到@Mauro
的答案中,可以使用以下命令在單個文件中安裝mailparse並從/etc/php.ini中刪除擴展名。
.ebextensions / 01_mailparse.config (PHP 7.x)
commands:
01_mailparse_install:
command: |
pecl7 install --force mailparse
sed -i '/extension="mailparse.so"/d' /etc/php.ini
files:
"/etc/php.d/mailparse.ini":
mode: "000644"
owner: root
group: root
content: |
extension="mailparse.so"
.ebextensions / 01_mailparse.config (PHP 5.6)
commands:
01_mailparse_install:
command: |
pecl install --force mailparse-2.1.6
sed -i '/extension="mailparse.so"/d' /etc/php.ini
files:
"/etc/php.d/mailparse.ini":
mode: "000644"
owner: root
group: root
content: |
extension="mailparse.so"
|
允許多行值。 我修改了sed
命令並添加了files塊,以使其無需更改即可在多個PHP版本上工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.