如何将大于 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 都表示“兆字节”。 例如,2M 等于 2 MB。但是,在配置文件中只能使用 M,MB 在配置文件中是无效的。

解决方案

选择适用于您的解决方案堆栈的解决方案。

修改运行 PHP 解决方案堆栈的 Elastic Beanstalk 环境的上传文件大小

要增加所有实例的上传文件大小,请完成以下步骤来更新底层的亚马逊机器映像(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,请参阅 php.ini 指令 post_max_size。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 命令删除无用的备份文件。有关更多信息,请参阅扩展 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,请参阅 php.ini 指令 post_max_size。有关更多信息,请参阅 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)进行高级环境自定义

将带有外部 Amazon Relational Database Service(Amazon RDS)数据库的高可用性 WordPress 网站部署到 Elastic Beanstalk

在 Amazon Linux 2 上托管 WordPress 博客

PHP 网站上 php.ini 核心指令说明

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