經過設置nginx的client_max_body_size解決nginx+php上傳大文件的問題:
用nginx來作webserver的時,上傳大文件時須要特別注意client_max_body_size這個參數,不然會中斷在nginx的請求中,在php中是沒法記錄到訪問的.
通常上傳大文件流程:
首先修改php.ini文件:
參數 設置 說明
file_uploads on 是否容許經過HTTP上傳文件的開關。默認爲ON便是開
upload_tmp_dir – 文件上傳至服務器上存儲臨時文件的地方,若是沒指定就會用系統默認的臨時文件夾
upload_max_filesize 8m 望文生意,即容許上傳文件大小的最大值。默認爲2M
post_max_size 8m 指經過表單POST給PHP的所能接收的最大值,包括表單裏的全部值。默認爲8M
說明
通常來講,設置好上述四個參數後,在網絡正常的狀況下,上傳<=8M的文件是不成問題的
但若是要上傳>8M的大文件的話,只設置上述四項還不必定能行的通。除非你的網絡真有100M/S的上傳高速,不然你還得繼續設置下面的參數。
max_execution_time 600 每一個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time 600 每一個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit 8m 每一個PHP頁面所吃掉的最大內存,默認8M
可是仍是不行,由於的webserver用的是nginx, google了一下,發如今nginx的conf中添加了一個參數:
默認是1M,須要增大的話。
在nginx.conf中增長一句
client_max_body_size 30m;
重啓便可
30m表示最大上傳30M,須要多大設置多大。php