網站如何上傳超大檔案?

黄文Rex發表於2024-12-10

要允許網站上傳超大檔案,需要修改 PHP、Web 伺服器(如 Nginx 或 Apache)的相關配置。以下是詳細的步驟:

1. 修改 PHP 配置

  1. 找到 php.ini 檔案

    • 通常位於 /etc/php/7.x/fpm/php.ini/etc/php/7.x/cli/php.ini(根據您的 PHP 版本和安裝方式不同,路徑可能有所不同)。
  2. 修改 upload_max_filesizepost_max_size

    • 開啟 php.ini 檔案,找到以下兩個配置項並修改:
      upload_max_filesize = 2000M
      post_max_size = 2000M
    • upload_max_filesize 控制單個檔案的最大上傳大小。
    • post_max_size 控制整個 POST 請求的最大大小,通常應大於或等於 upload_max_filesize
  3. 儲存並重啟 PHP

    • 儲存 php.ini 檔案。
    • 重啟 PHP-FPM 服務(如果使用 PHP-FPM):
      sudo systemctl restart php7.x-fpm
    • 或者重啟 Web 伺服器(如 Apache):
      sudo systemctl restart apache2

2. 修改 Nginx 配置

  1. 找到 nginx.conf 檔案

    • 通常位於 /etc/nginx/nginx.conf
  2. 修改 client_max_body_size

    • 開啟 nginx.conf 檔案,在 http 塊中新增或修改以下配置:
      http {
          ...
          client_max_body_size 20000M;
          ...
      }
    • client_max_body_size 控制客戶端請求的最大大小。
  3. 儲存並重啟 Nginx

    • 儲存 nginx.conf 檔案。
    • 重啟 Nginx 服務:
      sudo systemctl restart nginx

3. 修改 Apache 配置

  1. 找到 httpd.conf 檔案

    • 通常位於 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf(根據您的作業系統和安裝方式不同,路徑可能有所不同)。
  2. 修改 LimitRequestBody

    • 開啟 httpd.conf 檔案,找到或新增以下配置:
      LimitRequestBody 1048576000
    • LimitRequestBody 控制請求體的最大大小,單位為位元組。例如,1000M 即 1048576000 位元組。
  3. 儲存並重啟 Apache

    • 儲存 httpd.conf 檔案。
    • 重啟 Apache 服務:
      sudo systemctl restart apache2
    • 或者:
      sudo systemctl restart httpd

注意事項

  1. 安全性

    • 允許上傳超大檔案可能會增加伺服器的負載和安全風險。建議在生產環境中謹慎調整這些配置,並考慮使用其他方法(如分片上傳)來處理大檔案上傳。

相關文章