簡體   English   中英

如何使用配置文件(.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 Extension?

我正在使用運行PHP 7.0.16的64位Amazon Linux 2017.03 v2.4.0

我嘗試過以下幾種方法:

第一個辦法,我已經嘗試使用files中的配置文件,但它不工作,配置文件名phpini.config.ebextensions目錄下面的設置:

files:
  "/etc/php.d/phpimap.ini":
    mode: "000755"
    owner: root
    group: root
    content: |
      extension=imap.so

通過顯示/etc/php-7.0.d/phpimap.ini將其他.ini文件解析為phpinfo() ,但不會安裝IMAP。

第二種方式使用container_command安裝php-imap但我收到錯誤。

container_commands:
  install_php_imap:
    command: yum install php55-imap

錯誤如下圖: 錯誤第二種方式

第三種方式使用組合的commandsfiles ,它只是成功安裝IMAP和依賴(php常見),但它不會激活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

通過添加以下腳本在我的.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

第四辦法,我加入測試upload_max_filesizepost_max_sizeextension=imap.sozzzphp.ini和僅包括兩個值是upload_max_filesizepost_max_size extension=imap.so未包含在zzzphp.ini文件中。

在此輸入圖像描述 在此輸入圖像描述

下面是phpini.config中的腳本.ebextensions

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

有什么建議么?

提前致謝。

最后它的工作

在.ebextensions中創建兩個文件,如下所示:

installdependencies.config ,如果需要,安裝php common

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

你在php的配置文件中包含了php-imap擴展,但這還不足以安裝它。

您將不得不將某些內容傳遞給您選擇的EBS配置方法,告訴它在系統級別安裝php-imap(或在該環境中調用的任何內容)。

我遵循了所有的建議,但我的命令仍然失敗,因為我的作曲家需要imap支持,容器命令運行后......這對我有用:

packages:
    yum:
        php72-imap.x86_64: []

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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