如何在我的 Elastic Beanstalk 环境中上传大于 2MB 的 WordPress 文件?
上次更新日期:2020 年 12 月 30 日
当我尝试在我的 AWS Elastic Beanstalk 环境中上传大于 2MB 的 WordPress 文件时,我收到以下错误消息“上传的文件超出 php.ini 中的 upload_max_filesize 指令。”
简短描述
Amazon Elastic Compute Cloud (Amazon EC2) 实例上的默认 PHP 配置不允许您上传大于 2MB 的 WordPress 文件。要上传大于 2MB 的文件,请更改 /etc/php.ini 文件中 upload_max_filesize 参数的默认值。
重要提示:M 和 MB 都是“兆字节”的有效表达。 例如,2M 等于 2MB。但是,请在配置文件中仅使用 M,因为 MB 在配置文件中无效。
解决方法
选择适用于您的解决方案堆栈的解决方法。
为运行 PHP 解决方案堆栈的 Elastic Beanstalk 环境更新上传文件大小
要增加各个实例的文件大小,请完成以下步骤来更新底层 Amazon 系统映像 (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。
提示:要修改 memory_limit 等 php.ini 参数,请参阅适用于 post_max_size 的 php.ini 指令。Elastic Beanstalk 中的最大 memory_limit 值为 256M。
2. 在应用程序源捆绑包的根目录中,创建一个称为 .ebextensions 的新目录,然后将 change_upload_size.config 文件移动到 .ebextensions 目录中。
如果 .ebextensions 目录已经存在于您的应用程序源捆绑包内,则将 .ebextensions 目录中的 change_upload_size.config 文件与其他 .config 文件一起保留。该目录结构应类似于以下示例:
├── 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 平台,请将 .ebextension 中所有地方的文件名 99uploadsize.ini 更改为 z99uploadsize.ini,以便允许新的 PHP 设置覆盖默认设置。
3. 打开 Elastic Beanstalk 控制台,然后为您的应用程序源捆绑包创建一个压缩存档。
4. 要将您的代码上传到现有 Elastic Beanstalk 环境,请选择您的环境,然后再选择上传和部署。
注意:要将您的代码部署到新的 Elastic Beanstalk 环境中,请参阅创建 Elastic Beanstalk 环境。
如果上传 .ebextensions 文件后仍存在错误消息,请使用 YAML 验证器检查代码中是否存在空格错误。另外,考虑使用 remove_old_ini 命令删除不必要的备份文件。有关更多信息,请参阅扩展 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 大的大小,然后保存文件。
提示:要修改 memory_limit 等 php.ini 参数,请参阅适用于 post_max_size 的 php.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 进程的内存。