我將大於 2 MB 的 WordPress 檔案上傳到 AWS Elastic Beanstalk 環境時,收到下列錯誤: "The uploaded file exceeds the upload_max_filesize directive in php.ini."
簡短描述
Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上的預設 PHP 組態不允許您上傳大於 2 MB 的 WordPress 檔案。若要上傳大於 2 MB 的檔案,請變更 /etc/php.ini 檔案中 upload_max_filesize 參數的預設值。
重要事項: M 和 MB 是 megabyte 的相等表示式。例如,2 M 等於 2 MB。由於 MB 在組態檔案中無效,請只使用 M。
解決方法
選擇適用於解決方案堆疊的解析度。
更新執行 PHP 解決方案堆疊的 Elastic Beanstalk 環境的檔案大小
若要增加所有執行個體的檔案大小,請更新您使用的 Amazon Machine Image (AMI)。
請完成下列步驟:
- 在程式碼編輯器中,建立名為 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 參數的值會從預設的 32 M 更新為 100 M。
若要修改 php.ini 參數 (例如 memory_limit),請參閱 post_max_size 的 php.ini 指令。在 Elastic Beanstalk 中的 memory_limit 最大值為 256 M。
- 在應用程式來源套件的根目錄中,建立名為 .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 中每個位置的檔名。
- 開啟 Elastic Beanstalk 主控台,然後建立應用程式來源套件的 .zip 封存。
- 若要將程式碼上傳至現有的 Elastic Beanstalk 環境,請選擇您的環境,然後選擇上傳並部署。
**注意事項:**若要在新的 Elastic Beanstalk 環境中部署程式碼,請參閱 Creating an Elastic Beanstalk environment。
上傳 .ebextensions 檔案之後,如果錯誤訊息保持不變,則請使用 YAML 驗證程式來檢查程式碼中是否有空格錯誤。此外,請執行 remove_old_ini 命令以移除不必要的備份檔案。如需詳細資訊,請參閱 Extending php.ini。
針對執行 LAMP 堆疊的單一執行個體變更上傳檔案大小
請完成下列步驟:
- 若要使用 vi 編輯器開啟 /etc/php.ini 檔案,請執行下列命令:
$ sudo vi /etc/php.ini
注意事項:****/etc/php.ini 檔名或路徑可能會取決於您的 PHP 版本或您使用的 AMI 版本而有所差異。
- 在 vi 編輯器中,將 upload_max_filesize 參數的值變更為大於 2 MB 的大小,然後儲存檔案。
**注意事項:**若要修改 php.ini 參數 (例如 memory_limit),請參閱 post_max_size 的 php.ini 指令。如需詳細資訊,請參閱 PHP 網站上的 post_max_size。
- 若要正常重新啟動 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 指令的描述