如何提高 WordPress 最大上传文件大小并避免 HTTP 错误
![/zh-cn/posts/2018/12/how-to-increase-wordpress-max-file-upload-size/image.png /zh-cn/posts/2018/12/how-to-increase-wordpress-max-file-upload-size/image.png](/zh-cn/posts/2018/12/how-to-increase-wordpress-max-file-upload-size/image.png)
这个问题其实是我在昨天写毕业文章的时候遇到的,但相信也有同样跟我遇到这个问题的人,所以我把外网上搜到的解决方案写在这里,希望能帮助到你。
众所周知 WordPress 对文件最大的上传大小有限制,比如下图中我的 WP 只能上传最大 2 MB 的文件。虽然大部分时间这个大小是足够的,但有时候我想上传一些高清的图片,这个时候 2 MB 就显得捉襟见肘了。
一圈 Google 之后,大部分网上的教程都提到了修改 .htaccess
或 php.ini
的办法来提高这个上限,下面我将这两个办法都列举出来:
1 1.1 修改 .htaccess
首先 SSH 连接到你的服务器,并编辑你网站根目录的 .htaccess
文件(例如 /var/www/example.com/src/.htaccess
)。在里面加入以下配置:
php_value upload_max_filesize 64M php_value post_max_size 64M php_value max_execution_time 300 php_value max_input_time 300
修改后不需要重启任何东西,新的配置已经生效。
第1行和第2行允许上传最大 64 MB 的文件,而第3、4行允许最高300秒的上传时间,避免因为超时而上传失败。你可以修改这些参数来适应你的需要。如果这些配置已经存在于你的 .htaccess
,你需要将他们先行删除。
在下面的截图里,你可以看到 WordPress 已经开始接受 64 MB 的文件了。
2 1.2 修改 php.ini
你也可以通过修改 php.ini
文件来达到同样的目的。这个文件通常在 /usr/local/etc/php/php.ini
,你可以通过运行 php --ini
命令来确认它的具体位置(如果你是通过 Docker 安装的 WordPress 的话,php 会位于你的wp实例里)。
在你的 php.ini
里,添加或者修改以下配置:
upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300
重启 php 服务后新的配置就会生效。
3 2. Nginx:修改 nginx.conf
不过如果你是用 Nginx 后端的话(比如我的这个wp),虽然网页上显示最大上传大小是 64 MB,但在上传大于 2 MB 的文件后会出现“HTTP 错误”。进一步调查发现大于 2 MB 的文件会导致 Nginx 后端报错 Error 413 Request Entity Too Large。顾名思义这个错误是 Nginx 无法接受大于 2 MB 的请求,为此我们需要修改 Nginx 的配置使其接受更大的文件。
打开你的 nginx.conf
文件,一般位于 /etc/nginx/nginx.conf
或者 /usr/local/nginx/conf/nginx.conf
。在http {} 方块里加入以下内容:
client_max_body_size 64M;
你可以修改这个数字以适应你的需求。
保存并重启 nginx 服务后(systemctl restart nginx
),WordPress 现在应该已经能正常上传 64 MB 以内的文件了。感谢 WordPress 论坛的 Nanhe Kumar 提出的解决方案。
相关内容
![/images/avatar-kazumi.jpg /images/avatar-kazumi.jpg](/images/avatar-kazumi.jpg)
如果你喜欢这篇文章,欢迎给我买杯咖啡 :)