PHP max_input_var设为了1000致使post数组太多时没法接受后面的参数值php
下午忽然接到格力电话说没法批量设置门店任务,可是在测试环境下没法重现,测试环境下好好的。nginx
而后登录到生产环境下,选择了几个保存也是正常的。可是当所有提交的时候就会不行了,num参数后台接收不到编程
我分析了传入的报文,是有这个参数的,可是后台拿不到,这个就很诡异。在生产环境上打了断点来调试,没看出什么状况。数组
后面查看源代码时留意到post过来的array只有999app
有没有这么巧呀,只有999家门店?去后台看了一下,有两千多家门店post
问题是定位到了,可是为何post不了这么多条数据呢?测试
先是把form的enctype默认是application/x-www-form-urlencoded。我觉得由于这个传法只能传1000之内的,因此改为了multipar/form-data。问题没有解决url
而后面向百度编程。查资料,发现php有个配置max_input_var是限制input数量的。我把这个改为了1万。提交,成功,哈,三个多小时就这么过去了。spa
总结:调试
在php的配置文件里有不少配置项。理解这些配置项有助于调优php。并能解决不少诡异的问题。
相近的配置还有:
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
在nginx中相近的配置有:
keepalive_timeout 60;
send_timeout 3m;
client_max_body_size 500m;
nginx和php的配置要常常要关联在一块儿调