以前一直用apache的,后来用nginx,发现文件上传总不成功,貌似是大小限制方面的问题,检查php.ini、目录权限、代码均无问题,后来发现web服务器提示Request Entity Too Large” (413),搜索后发现居然是nginx有一个参数 client_max_body_size,默认1m,对此事件负责。修改后问题解决。
有点不爽,个人觉得这不是web服务器管的事,没有脚本web也不能上传啊,干嘛有此设置,多此一举。
另外,其他几个参数也要注意:
nginx.conf
#keepalive_timeout 60;
#send_timeout 3m;
client_max_body_size 500m;
php.ini
max_execution_time = 600
max_input_time = 600
memory_limit = 32m
file_uploads = on
upload_tmp_dir = /tmp
upload_max_filesize = 32m
post_max_size = 32m
php-fpm.conf
<
value
name
=
"rlimit_files"
>65535</
value
>
<
value
name
=
"request_terminate_timeout"
>0s</
value
>
ps:后记
为了大文件上传,将post_max_size=2048m,后来的表单提交完全没反应,通过高人指点,查看 sylog得知超过了最大值,最后改成2000m,问题解决