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的配置要常常要關聯在一塊兒調