WordPress的默认图片上传大小限制在2M之内,本来这没有什么,但是我在上传一个自己购买的主题的时候,上传失败,失败原因是文件太大了,所以在网上找到的解决方法是修改WordPress的文件上传限制。
修改后的效果:
此时在媒体库的下方:最大文件大小已经改变为10M。
于是上传一个大于2M的图片做下测试,结果:
第一行是图片名称,第二行提示HTTP错误。WordPress的文件上传怎么会出现HTTP错误呢?
寻找解决方案ing ... 2016/10/28 11:32
线索来源一:
“而我求助百度时发现有人用以下两种方法解决了WordPress上传图片HTTP错误这个问题。”
解决wordpress上传图片HTTP错误:
方法一:使用服务器的wordpress用户
服务器安全设置问题,修改服务器的httpd.conf文件,删除里面关于mod_security部分就可以了。
方法二:使用虚拟主机的wordpress用户
在.htaccess文件里面加上一行:
SetEnvIfNoCase <span class="sh_normal">Request_URI </span><span class="sh_symbol">/</span>wp<span class="sh_symbol">-</span><span class="sh_normal">admin</span><span class="sh_symbol">/</span>async<span class="sh_symbol">-</span>upload<span class="sh_symbol">.</span>php$ MODSEC_ENABLE<span class="sh_symbol">=</span>Off
PS:由于我使用的是虚拟主机,第一种方法没办法测试,可我测试第二种方法时依然不能成功。
----- 来自百度
我使用的是服务器,所以选择方法一。
“服务器安全设置问题,修改服务器的httpd.conf文件,删除里面关于mod_security部分就可以了”
问题归结为服务器安全设置问题。
这里没有说是那种服务器,而httpd.conf文件是Apache服务器的配置文件,而我用的是nginx服务器。
现在也就是说我只要修改nginx服务器配置文件里面关于服务器安全设置问题部分的对应操作就行了。
由于我是一个初学者,对于服务器配置不甚了解,所以需要再作研究。
在服务器中的错误日志里面找到的关于图片上传HTTP错误的日志:
2016/10/28 13:02:17 [error] 4620#6284: *116 client intended to send too large body: 2651482 bytes, client: 192.168.1.63, server: localhost, request: "POST /wp-admin/async-upload.php HTTP/1.1", host: "192.168.1.63", referrer: "http://192.168.1.63/wp-admin/upload.php"
client_max_body_size 100m;
在nginx.conf文件中的适当位置增加上面代码。
至于那个位置,看这篇转载文章nginx报错 client intended to send too large body: 1331696 bytes
通过解决上面的错误,文件得以成功上传;
3M的一个图片上传成功了!!!
在文章开头提到的修改wordpress的文章限制。
修改WordPress中附件上传大小限制
也是在一片文章中看到的,我也会转载过来。
主要是修改php.ini文件,
首先找到php.ini文件的位置:这个位置是通过在网站根目录下建一个info.php文件,文件内容如下:
<?php
echo
phpinfo();
?>
然后用浏览器浏览info.php文件:
然后找到php.ini的位置;打开文件,
搜索:memory_limit、post_max_size、upload_max_filesize、max_execution_time、max_input_time
一般默认的设置值为:
memory_limit=128M //相当于单个脚本可调用内存大小
post_max_size=8M //上传文件大小上限
upload_max_filesize=2M //默认上传文件大小,这个就是2M的限制!
max_execution_time=30 //最大执行时间,页面等待时间
max_input_time=60 //最大输入时间?具体意义不明确,就是上传时间相关
然后将其改为自己需要的值,例如:
memory_limit=128M
post_max_size=15M
upload_max_filesize=10M //这样就改为可以传10M以下的文件了
max_execution_time=60
max_input_time=60
重启nginx及php服务使得设置才能生效!
本文是在问题解决的过程中写出来的,思路有点混乱,掺杂了问题出现时博主的第一反应,不喜勿喷!
欢迎交流学习!