解决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
2、第一步解决后php大小限制可能还会超限,需要进行设置

        php.ini中的如下值的最大值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。

 代码如下复制代码

post_max_size = 2M
upload_max_filesize = 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


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。