通過設(shè)置nginx的client_max_body_size解決nginx+php上傳大文件的問題:
用nginx來做webserver的時(shí),上傳大文件時(shí)需要特別注意client_max_body_size這個(gè)參數(shù),否則會(huì)中斷在nginx的請(qǐng)求中,在php中是無法記錄到訪問的.一般上傳大文件流程:
首先修改php.ini文件:
file_uploads on 是否允許通過HTTP上傳文件的開關(guān)。
默認(rèn)為ON即是開upload_tmp_dir – 文件上傳至服務(wù)器上存儲(chǔ)臨時(shí)文件的地方,如果沒指定就會(huì)用系統(tǒng)默認(rèn)的臨時(shí)文件夾
upload_max_filesize 8m 望文生意,即允許上傳文件大小的最大值。默認(rèn)為2M
post_max_size 8m 指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認(rèn)為8M
一般來說,設(shè)置好上述四個(gè)參數(shù)后,在網(wǎng)絡(luò)正常的情況下,上傳<=8M的文件是不成問題的但如果要上傳8M的大文件的話,只設(shè)置上述四項(xiàng)還不一定能行的通。除非你的網(wǎng)絡(luò)真有100M/S的上傳高速,否則你還得繼續(xù)設(shè)置下面的參數(shù)。
max_execution_time 600 每個(gè)PHP頁面運(yùn)行的最大時(shí)間值(秒),默認(rèn)30秒
max_input_time 600 每個(gè)PHP頁面接收數(shù)據(jù)所需的最大時(shí)間,默認(rèn)60秒
memory_limit 8m 每個(gè)PHP頁面所吃掉的最大內(nèi)存,默認(rèn)8M
webserver用的是nginx,在nginx的conf中添加了一個(gè)參數(shù):client_max_body_size 默認(rèn)是1M,需要增大的話。
在nginx.conf中增加一句
client_max_body_size 30m;
重啟即可30m表示最大上傳30M,需要多大設(shè)置多大。