網頁開發

解除 PHP 上傳大檔案限制,修改 php.ini 設定檔

這裡介紹如何修改 php.ini 設定檔,解除 PHP 上傳大檔案限制。


編輯 PHP 的 php.ini 設定檔,放寬檔案上傳大小相關的設定:
; 上傳檔案大小上限(單一檔案大小)
upload_max_filesize = 50M

; POST 大小上限(所有檔案大小加總)
post_max_size = 200M

; 記憶體用量上限
memory_limit = 512M

這三個設定值可以依照自己的需求來調整,大原則就是「記憶體用量上限」一定要比「POST 大小上限」更大,而「POST 大小上限」則要比「上傳檔案大小上限」更大,也就是這樣:

記憶體用量上限 > POST 大小上限 > 上傳檔案大小上限

上傳大型檔案通常都會需要比較久的時間,而 PHP 預設的設定不允許 PHP 指令稿執行太久,如果這部分沒有調整的話,可能會造成檔案上傳到一半,程式就被系統終止了,這樣也是傳不上去,所以要再調整 PHP 指令稿執行時間的設定值,讓 PHP 指令稿可以執行比較久一點,讓檔案可以傳的完。

; PHP 指令稿執行時間上限(秒)
max_execution_time = 600

; PHP 指令稿解析輸入資料時間上限(秒)
max_input_time = 600

若擔心網路不穩造成傳大檔案時容易斷線的話,可以嘗試將 socket 等待逾時的設定調大一點:

; socket 等待逾時(秒)
default_socket_timeout = 600

若有使用 MySQL 資料庫的連線,可以修改一下 MySQL 連線逾時的設定,避免上傳檔案等待太久,造成資料庫連線中斷:

; MySQL 資料庫連線逾時(秒,-1 代表永不斷線)
mysql.connect_timeout = -1

更改完 php.ini 設定檔之後,重新啟動 Apache 伺服器,讓新的設定生效:

sudo service httpd restart
G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: PHP

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

1 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

2 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

2 年 ago