將 Nextcloud 的 Web 上傳限制提高到 2 GB 以上
透過調整 PHP、Nginx 或 Apache、暫存和逾時設置,讓 Nextcloud 瀏覽器上傳更大的文件,並驗證是哪個限制阻止了文件上傳。
如果 Nextcloud 的管理概覽顯示 PHP 記憶體限制低於 512 MB,隨意提高該值php.ini可能無法消除警告。 Nextcloud 會檢查用於 Web 介面的 PHP 環境,而命令列 PHP 可能會載入不同的設定。請memory_limit為活動的 Web PHP 服務設定該值,重新啟動該服務,然後從 Nextcloud 的管理概覽中驗證該值。
截至2026年10月10日,Nextcloud 35的管理手冊指出,PHP的記憶體限制至少應為512MB。這是單一腳本的記憶體上限,並非保證每個PHP進程都會使用這麼多記憶體。提高記憶體限制可以確保記憶體密集型請求順利完成,但並不會增加實體記憶體;在小型伺服器上,過多的並發PHP工作進程仍然會耗盡系統記憶體。
在編輯配置之前,請先確定您的 Web 技術堆疊和 PHP 版本。在 Nextcloud 管理概覽中,如果顯示了 PHP 版本,請記下版本。在 shell 中,`npm run dev`php --ini命令會顯示命令列 PHP 二進位檔案使用的設定文件,但這並不能證明 PHP-FPM 或 Apache 在處理瀏覽器請求時使用哪個檔案。
php --version
php --ini
對於典型的 Debian 或 Ubuntu 系統,PHP-FPM 通常會讀取 `<path>` /etc/php/<version>/fpm/php.ini,而 Apache 的 mod_php 通常會讀取 `<path> /etc/php/<version>/apache2/php.ini`。 CLI 配置通常位於 `<path> /etc/php/<version>/cli/php.ini`。請將 `<path>` 替換<version>為已安裝的 PHP 版本,例如 `<version> 8.3`。其他作業系統和控制面板可能會使用不同的路徑。
Nextcloud 的手冊也指出,諸如 AIO、Snap、NCP 或 Community Docker 等開箱即用的部署方案提供了預先配置的 PHP 環境。對於這些安裝,請使用部署方案支援的設定方法,而不是假設主機層級的設定方法php.ini同樣適用。
備份目前 FPM 配置,然後編輯其設定檔php.ini。在 Debian 或 Ubuntu 系統上,命令可能如下所示;請根據您的伺服器版本和路徑進行調整:
sudo cp /etc/php/8.3/fpm/php.ini /etc/php/8.3/fpm/php.ini.backup
sudo nano /etc/php/8.3/fpm/php.ini
找到現有memory_limit指令並將其值設定為至少 512 MB:
memory_limit = 512M
編輯現有指令,而不是增加多個相互衝突的副本。如果在 PHP-FPM 連線池配置中設定了該指令php_admin_value[memory_limit],則該連線池層級的設定優先;如果警告仍然存在,請檢查活動的連線池檔案。
重新啟動對應的 PHP-FPM 服務,以便新的 Web 請求使用更新後的設定。例如,該服務可能名為php8.3-fpm:
sudo systemctl restart php8.3-fpm
當 Apache 使用 PHP-FPM 時,只有當您的 Web 伺服器設定也發生變更時,才需要重新啟動 PHP-FPM 並重新載入或重新啟動 Apache。請使用您的發行版中正確的服務名稱。
如果 Apache 將 PHP 作為模組加載,請編輯 Apache SAPI 的配置(通常/etc/php/8.3/apache2/php.ini在 Debian 或 Ubuntu 系統上)。設定配置memory_limit = 512M,儲存文件,然後使用作業系統對應的服務名稱重新啟動 Apache:
sudo systemctl restart apache2
如果目前 Web 伺服器正在使用 mod_php,請勿編輯 FPM 文件,反之亦然。管理概覽警告中顯示的是 Web 伺服器載入的 PHP 配置。
Nextcloud 官方 Docker 映像文件中提到了一個PHP_MEMORY_LIMIT環境變量,其預設值為 `--enable ...512M
以管理員身分登入並重新開啟「管理設定」>「概覽」。確認記憶體警告已消失,且報告的 PHP 限制至少為 512 MB。重新啟動服務後重新整理頁面;先前載入的頁面可能仍顯示過時的狀態。
如果仍然顯示較低的數值,請依序檢查以下可能的原因:
php.ini。CLI 輸出php --ini對於 cron 和 OCC 作業仍然有用,但它本身無法驗證 Web 值。請避免phpinfo()在伺服器上保留公開頁面;請改用受保護的 Nextcloud 管理概覽或主機提供的安全診斷工具。
Nextcloud 建議的 512 MB 記憶體使用量是最低配置建議,並非通用的記憶體容量計算公式。大型預覽、導入或應用程式特定操作可能需要更多內存,但大幅提高此限制會導致每個 PHP 進程消耗更多 RAM。如果主機開始使用交換空間或作業系統終止 PHP 工作進程,請降低 PHP-FPM 並發數或增加記憶體容量,而不是繼續提高每個進程的記憶體限制。在選擇更高的記憶體使用量之前,請檢查正常尖峰時段的實際記憶體使用量。
如果警告消失但原始操作仍然失敗,請在 Nextcloud 日誌和 Web 伺服器或 PHP-FPM 日誌中尋找更具體的 PHP 錯誤。記憶體限制警告與 PHP 的每個進程分配的記憶體上限有關;它不會診斷無關的上傳限制、逾時、磁碟壓力或應用程式錯誤。
透過調整 PHP、Nginx 或 Apache、暫存和逾時設置,讓 Nextcloud 瀏覽器上傳更大的文件,並驗證是哪個限制阻止了文件上傳。
設定 Nextcloud 實際使用的 PHP 記憶體限制,重新啟動對應的服務,並在管理概覽中確認 512 MB 設定。
使用 Nextcloud 的 S3 後端,透過正確的端點、憑證、存取範圍和驗證步驟,掛載相容的物件儲存桶。
使用持久 UUID 掛載、維護模式、已驗證的副本和原始路徑符號鏈接,安全地將 Linux Nextcloud 資料目錄移至外部驅動器。
透過診斷 SQL 錯誤、檢查資料庫連線並安全地完成中斷的遷移,在更新後恢復 Nextcloud 存取。
使用 Nextcloud 的 OCC 命令從伺服器 shell 重設管理員密碼,並提供有關使用者名稱、權限和外部登入提供者的指導。
透過在 Apache、NGINX 或 TLS 代理程式上設定標頭來清除 Nextcloud 的 HSTS 警告,然後安全地驗證公共 HTTPS 回應。
追蹤 App Store 安裝失敗是否由 DNS、HTTPS、代理、TLS 或 Nextcloud 伺服器本身的設定問題所引起。
將縮圖製作移至受控的後台計劃,修剪未使用的預覽尺寸,並在不使 Nextcloud 伺服器過載的情況下驗證佇列。
找到導致 Nextcloud 同步失敗的檔案、排除規則、連線問題或用戶端資料庫狀態,然後安全地驗證上傳和下載。