跳至內容

如何將大於 2 MB 的 WordPress 檔案上傳到我的 Elastic Beanstalk 環境?

2 分的閱讀內容
0

我將大於 2 MB 的 WordPress 檔案上傳到 AWS Elastic Beanstalk 環境時,收到以下錯誤訊息: 「上傳的檔案超過 php.ini 中的 upload_max_filesize 指令。」

簡短說明

Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的預設 PHP 組態不允許您上傳大於 2 MB 的 WordPress 檔案。若要上傳大於 2 MB 的檔案,請變更 /etc/php.ini 檔案中 upload_max_filesize 參數的預設值。

注意: M 和 MB 是「megabyte」(百萬位元組) 的相等表示式。 例如,2M 等於 2 MB。但是,在組態檔中僅使用 M,因為 MB 在組態檔中無效。

解決方案

選擇適用於解決方案堆疊的解析度。

更新執行 PHP 解決方案堆疊的 Elastic Beanstalk 環境的檔案大小

若要增加所有執行個體的檔案大小,請完成以下步驟以更新基礎 Amazon Machine Image (AMI)。

  1. 在程式碼編輯器中,建立名為 change_upload_size.config 的新檔案,然後將下列程式碼新增至檔案:

    files:
      "/etc/php.d/99uploadsize.ini":    
          mode: "000644"
          owner: root
          group: root
          content: |        
            upload_max_filesize = 100M
            post_max_size = 100M
    commands:
      remove_old_ini:
        command: "rm -f /etc/php.d/99uploadsize.ini.bak"

    **注意:**在前面的範例中,post_max_size 參數的值會從預設的 32M 更新為 100M
    若要修改 php.ini 參數 (例如 memory_limit),請參閱 post_max_sizephp.ini 指令。在 Elastic Beanstalk 中的 memory_limit 最大值為 256M

  2. 在應用程式來源套件的根目錄中,建立名為 .ebextensions 的新目錄,然後將 change_upload_size.config 檔案移至 .ebextensions 目錄。
    如果 .ebextensions 目錄已經位於應用程式來源套件中,請將 change_upload_size.config 檔案與其他 .config 檔案一起保留在 .ebextensions 目錄中。
    範例:

    ├── wp-site.zip/     ├── .ebextensions/         ├── change_upload_size.config
        ├── wp-content/
        ├── wp-includes/
        ├── wp-admin/
        ├── LICENSE
        ├── README.md
        ├── index.php
        ├── license.txt
        ├── readme.html
        ├── ...
        ├── ...
        ├── ...
        ├── ...
        ├── wp-settings.php
        ├── wp-signup.php
        ├── wp-trackback.php
        └── xmlrpc.php

    注意: 對於根據 Elastic Beanstalk 的 Amazon Linux 2 平台,請將檔名 99uploadsize.ini 變更為 z99uploadsize.ini。若要允許新的 PHP 設定覆寫預設值,請變更 .ebextension 中每個位置的檔名。

  3. 開啟 Elastic Beanstalk 主控台,然後建立應用程式來源套件的 .zip 封存。

  4. 若要將程式碼上傳至現有的 Elastic Beanstalk 環境,請選擇您的環境,然後選擇 Upload and Deploy (上傳並部署)。
    **注意:**若要在新的 Elastic Beanstalk 環境中部署程式碼,請參閱建立 Elastic Beanstalk 環境

上傳 .ebextensions 檔案之後,如果錯誤訊息保持不變,則請使用 YAML 驗證程式來檢查程式碼中是否有空格錯誤。此外,請使用 remove_old_ini 命令以移除不必要的備份檔案。如需詳細資訊,請參閱在 Elastic Beanstalk 組態中擴展 php.ini

針對執行 LAMP 堆疊的單一 Amazon EC2 執行個體變更上傳檔案大小

  1. 若要使用 vi 編輯器開啟 /etc/php.ini 檔案,請執行下列命令:

    $ sudo vi /etc/php.ini

    注意:****/etc/php.ini 檔名或路徑可能會取決於您的 PHP 版本或您使用的 AMI 版本而有所差異。

  2. 在 vi 編輯器中,將 upload_max_filesize 參數的值變更為大於 2 MB 的大小,然後儲存檔案。
    注意: 若要修改 php.ini 參數 (例如 memory_limit),請參閱 post_max_sizephp.ini 指令。如需詳細資訊,請參閱 PHP 網站上的 post_max_size 項目。

  3. 若要重新啟動 Apache 伺服器,請執行適合您環境的命令。
    對於 Amazon Linux:

    $ sudo service httpd graceful

    對於 Amazon Linux 2:

    $ sudo service httpd reload

注意:****/etc/php.ini 檔名或路徑可能會取決於您的 PHP 版本或您使用的 AMI 版本而有所差異。如果您使用的是 Amazon Linux AMI 以外的發行版,則重新啟動 Apache 伺服器的命令也會有所差異。依預設,WordPress 會限制其 PHP 處理程序的記憶體。

相關資訊

使用組態檔案 (.ebextensions) 進行進階環境自訂作業

將高可用性 WordPress 網站與外部 Amazon Relational Database Service (Amazon RDS) 資料庫部署到 Elastic Beanstalk

教學課程: 在 AL2 上託管 WordPress 部落格

PHP 網站上的核心 php.ini 指令描述

AWS 官方已更新 10 個月前