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>
google一下,原來PHP從5.3.9開始增加一個變量 max_input_vars 用來限制提交的表單數量,折騰了半天,原來php小版本升級引起的不兼容,php中默認post中的參數的個數是1000, 超過部分會被自動扔掉。用 phpinfo()查看max_input_vars。如下圖所示:

解決方法很簡單,在PHP.ini中設置 max_input_vars = 5000
php.ini 文件里的 max_input_vars 默認值為 1000, 正常情況下夠用,偶爾遇到我這種提交2000多個表單的情況還是比較少見的,不過,如果發現提交表單個數不全的情況,可以試試修改這個配置。
tags: php post 數據被截取, php post 數據不完整, php post 丟失數據
