簡體   English   中英

如何將php ext-mailparse添加到彈性beantalk實例?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM