解决Nginx、Apache、Php上传大小限制
今天在提交一个比较大的blog时出现请求体过大的nginx错误,现在讲一系列解决过程记录下来。
1、nginx请求 413 Request Entity Too Large 错误
经过搜索,发现是nginx 的上传大小超限导致,解决方法如下
打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加
代码如下 | 复制代码 |
client_max_body_size 2m; |
然后重启nginx,
代码如下 | 复制代码 |
/etc/nginx/sbin/nginx -s reload |
php.ini中的如下值的最大值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。
代码如下 | 复制代码 |
post_max_size = 2M |
3、如果内部使用Apache作为服务器的话,又可能被apache拦截掉
需要设置虚拟网站内的LimitRequestBody选项
4、也有可能由于提交数据较大导致php处理或者input超时,需要设置如下选项
php.ini:max_execution_time = 30 ; Maximum execution time of each script, in seconds
php.ini:max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。
php.ini:memory_limit 本 指令设定 了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)(一般导入数据库时,如果数据库太大,就会报错,改这个就可以)
php.ini:post_max_size 设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
5、以上全部设置完成基本就可以,最后一个错误可能是你服务器网站里的上传限制了,如果还超过大小设置一下网站上传限制就好
以上为解决过程,有如下参考:
http://www.php100.com/html/program/nginx/2013/0905/5516.html
http://my.oschina.net/junn/blog/147931
已有1位网友发表了看法:
发表评论