PHPのとある案件で、項目が多数あるフォームでPOSTしようとしたら途中で処理が止まってしまった。
ログをみたらこんなエラーが発生していた。
PHP Warning: Unknown: Input variables exceeded 3000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0, referer:
ふむふむ、php.iniのmax_input_varsを3000以上にしなさい、とあるので、早速対応。
vi /etc/php.ini
編集モードに入り,max_input_varsを6000に変更
max_input_vars = 6000
viを閉じて、Webサーバーを再起動。
service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
再度フロント側のPOST処理を実行!
ってあれ?
また失敗してるみたい。
ログを覗いてみると・・・
PHP Warning: Unknown: Input variables exceeded 3000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0, referer:
phpInfo()を見てもやはり6000になっている・・・
他にmax_input_vars を設定する箇所などあるのかな
そうだ.htaccessを見よう!
vim /path/to/.htaccess
なんかそれらしい記述を発見!
php_value max_input_vars 3000
こちらも修正しましょう。
php_value max_input_vars 6000
そして再度実行、無事POST処理に成功しました・・・
まとめ
今回のように、環境によってはphpの設定ファイルはphp.ini以外の複数の箇所で行っていたりしますので、max_input_vars という単語でgrepを掛けてみて、
grep max_input_vars -lr .
ほかに当該設定を行っているファイルがないか、探してみて、もしひっかかったら、そちらも修正してみてください。