公司內一個php的后台管理系統,之前運行在apache上,后來我給轉到nginx+php上后,其他功能運行正常,有一個修改功能提交表單后沒有提交成功,查了代碼沒查出來什么問題,后來看了下php error日志,也沒有什么線索,打印post請求后,也發現提交表單個數和正在表單個數對不上(當時懷疑過是不是某個插件是不是沒裝,字符集對不對等),再看了下php-fpm的日志,有點信息可以參考了。
1
|
[25-Sep-2014 15:19:30] WARNING: [pool www] child 28329 said into stderr: "NOTICE: PHP message: PHP Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0"
|
提示input 變量個數超過1000,建議修改php.ini文件中的 max_input_vars,PHP從5.3.9開始增加一個變量 max_input_vars 用來限制提交的表單數量。
我這個功能(類似於phpmysqladmin功能,讀取數據庫表,然后能寫入編輯,然后數據庫字段有128個,然后每個字段有11個input框)大概有1400多個input,(多么痛的領悟,為毛這么吊,研發一個表搞這么多字段),
然后我在php.ini里面加入
1
2
3
|
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
max_input_vars = 2000
|
重啟php-fpm后,功能正常了。看日志很重要。