如何將大於 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 環境,請選擇您的環境,然後選擇上傳並部署
**注意事項:**若要在新的 Elastic Beanstalk 環境中部署程式碼,請參閱建立 Elastic Beanstalk 環境

上傳 .ebextensions 檔案之後,如果錯誤訊息保持不變,則請使用 YAML 驗證程式來檢查程式碼中是否有空格錯誤。此外,請使用 remove_old_ini 命令以移除不必要的備份檔案。如需詳細資訊,請參閱 Extending 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

在 Amazon Linux 2 上託管 WordPress 部落格

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

AWS 官方
AWS 官方已更新 7 個月前