Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> nginx+php上傳大文件解決辦法

nginx+php上傳大文件解決辦法

日期:2017/2/8 10:13:21      編輯:關於服務器
用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,需要多大設置多大。

文本總結


默認情況下,nginx允許客戶端請求的最大的單個文件字節數為1M,就是說如果上傳的文件超過1M就上傳不了。可以人為修改這個參數,例如把下面代碼放在http段,這樣就可以上傳10M以下的文件

client_max_body_size 10m;
另外限制上傳文件大小配置在php.ini也有配置,默認是

post_max_size = 8M
upload_max_filesize = 2M

Copyright © Windows教程網 All Rights Reserved