使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何将大于 2 MB 的 WordPress 文件上传到我的 Elastic Beanstalk 环境?

2 分钟阅读
0

当我将大于 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 参数的默认值。

重要事项: MMB 都表示“兆字节”。例如,2 M 就是 2 MB。这是因为 MB 在配置文件中无效,所以只能使用 M。

解决方法

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

修改运行 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 参数的值从默认的 32 M 更新为 100 M
    要修改 php.ini 参数,例如 memory_limit,请参阅 php.ini 指令 post_max_size。Elastic Beanstalk 中的最大 memory_limit 值为 256 M
  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 堆栈的单个实例的上传文件大小

完成以下步骤:

  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 官方已更新 8 个月前