首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

php.ini 文件上傳核心配置詳解:upload_max_filesize、post_max_size、memory_limit 關聯與最佳實踐

     編輯:PHP 相關知識

核心配置項速查表

指令默認值說明建議值 (大文件上傳)
file_uploadsOn總開關,必須開啟On
upload_tmp_dir系統臨時目錄臨時文件存放路徑,**必須設置可寫目錄**,否則上傳失敗/var/tmp/php_upload
upload_max_filesize2M單個上傳文件最大體積100M
post_max_size8MPOST 請求體總大小,**必須 ≥ upload_max_filesize**120M
max_execution_time30腳本最大執行秒數,大文件需調大300 (或 0 無限制)
max_input_time60解析請求數據最大秒數 (含文件接收)300
memory_limit128M腳本內存上限,**必須 > post_max_size**256M

參數關聯鏈

memory_limit > post_max_size > upload_max_filesize
      ↑              ↑                ↑
   腳本內存      請求體總大小      單文件上限

若上傳 50MB 文件:upload_max_filesize=50M、post_max_size=60M、memory_limit=128M、max_execution_time=300、upload_tmp_dir=/data/tmp/uploads (確保目錄存在且 PHP 進程用戶可寫)。

常見誤區

  • 只改 upload_max_filesize:導致 POST 體超過 post_max_size,$_FILES 為空,無報錯難排查。
  • 忽略 upload_tmp_dir:Windows 手動部署常忘記,導致「上傳失敗無錯誤信息」。
  • memory_limit 設過小:大文件移動、圖片處理時觸發 Allowed memory exhausted。
  • max_execution_time=0:生產環境慎用,防止掛起進程佔滿資源;建議設置合理上限 (如 300s) 並配合 Nginx client_max_body_size、proxy_read_timeout。

生產環境檢查清單

  1. 建立專用臨時目錄:mkdir -p /var/tmp/php_upload && chown www-data:www-data /var/tmp/php_upload
  2. 修改 php.ini 並重載 PHP-FPM:systemctl reload php-fpm
  3. 同步調整 Nginx:client_max_body_size 100m;
  4. 4. 測試:上傳 10MB/50MB/100MB 文件,驗證 $_FILES['error'] 為 UPLOAD_ERR_OK。

配置修改後必須重載 PHP 進程生效。Windows 下修改 php.ini 需重啟 Apache/IIS。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved