設定 Nextcloud 的公共 URL,以便它可以存取自身。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
Nextcloud 34.0.2 引入了捆綁的 Redis 相容KeyValueCache後端,因此目前版本的 Nextcloud 無需安裝 PHP 的 Redis 擴充功能即可使用 Redis。在單一 Ubuntu 24.04 伺服器上,使用 APCu 作為快速本地緩存,並使用 Redis 作為分散式快取和事務性檔案鎖定,兩者透過 Unix 套接字連接。這樣可以將 Redis 置於網路之外,並為 Nextcloud 提供一個可在 PHP 請求之間共用的快取。
目前的 Nextcloud 35 管理手冊記錄了兩種 Redis 路徑。對於 Nextcloud 34.0.2 或更高版本,建議KeyValueCache使用 Nextcloud 自帶的 Predis;您只需安裝 Redis 伺服器並進行設置memcache.kvstore,無需其他配置php-redis。較舊的 Nextcloud 版本使用 PhpRedis 擴充功能和不同的config.php配置區塊。使用 `npm run dev` 指令檢查您的版本sudo -u www-data php /var/www/nextcloud/occ status,如果您的 Redis 安裝位於其他位置,請取代對應的路徑。
本指南假設 Nextcloud 和 Redis 運行在同一台 Ubuntu 主機上,Web 伺服器運行在 `<path>` www-data,並且您直接管理 PHP 和 Redis。如果您是透過 Snap、AIO、Docker 或其他裝置安裝的 Nextcloud,請遵循該軟體套件的服務和檔案系統約定,而不是盲目地執行主機級命令。 APCu 在本地快取方面比 Redis 更快,而 Redis 更適合分散式快取和檔案鎖。請參閱Nextcloud 記憶體快取文件。
更新Ubuntu的軟體包索引,安裝Redis伺服器和APCu PHP模組,並啟用Redis開機啟動:
sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server

在 Ubuntu 24.04 上,預設的 PHP 版本是 8.3,這php-apcu是發行版軟體套件的名稱。 Redis 是一個獨立的服務;APCu 由 PHP 載入。安裝 APCu 後,請重新啟動 PHP 進程,以便以 Web 為導向的 PHP 進程載入模組。如果您使用 PHP-FPM,通常需要重新啟動php8.3-fpm;如果 Apache 使用 mod_php,則需要重新啟動apache2。重新啟動前請檢查您的活動服務名稱。
對於這種單主機配置,請使用 Unix 套接字並關閉 Redis 的 TCP 監聽器。編輯設定檔/etc/redis/redis.conf。更新現有的活動指令,而不是保留多個衝突的副本,然後設定:
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770

port 0停用 TCP 連接埠;Redis 改為透過套接字路徑監聽。權限模式770允許 Redis 擁有者和使用者群組存取套接字,同時拒絕其他本機使用者存取。將 Web 伺服器帳戶新增至 Redis 使用者群組:
sudo usermod -aG redis www-data
sudo systemctl restart redis-server
變更群組成員關係後,請重新啟動 PHP-FPM 服務或 Apache,因為執行中的進程會保留其舊的群組清單。請使用實際執行 Nextcloud PHP 的服務。 Redis 文件建議限制對受信任用戶端的存取;使用本機套接字可以避免在面向網際網路的介面上暴露快取連接埠。請參閱Redis 安全指南。
備份文件config/config.php,然後將這些條目新增至現有的 PHP 設定陣列。不要替換文件的其餘部分。使用 Nextcloud 安裝所在的路徑。
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => '/run/redis/redis-server.sock',
],
],

主機路徑開頭的斜線告訴 Nextcloud 的 KeyValueCache 使用 Unix 套接字,因此無需設定 TCP 連接埠或協定。 Redis 同時提供了這兩種方式memcache.distributed;memcache.locking後者將事務性檔案鎖定從資料庫移開。memcache.local使用 APCu 可以實現更低延遲的本地快取存取。具體的設定項目和套接字選項請參閱 Nextcloud 的KeyValueCache 和 Unix 套接字說明以及事務性檔案鎖定指南。
首先確認 Redis 服務已啟動且套接字有回應:
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping

第二個命令的預期回應是PONG。然後登入 Nextcloud 並開啟管理設定概覽。確認本機快取警告已消失,並檢查 Nextcloud 日誌中是否仍存在 Redis 或快取警告。您也可以執行以下sudo -u www-data php /var/www/nextcloud/occ status命令來確認實例是否仍在載入;此命令檢查的是 Nextcloud 的可用性,而不是快取本身。
如果 Redis 報告「權限被拒絕」或 Nextcloud 無法連接,請檢查套接字是否存在、是否www-data屬於指定redis群組,以及套接字的群組和模式是否允許存取。更改組成員關係後,請重新啟動 Redis 和 PHP 處理程序。如果 Redis 無法建立套接字,請檢查配置路徑中是否有拼字錯誤sudo journalctl -u redis-server -n 50。切勿透過將 Redis 開放到公共網路來解決套接字權限問題。
如果您的 Nextcloud 版本低於 34.0.2,請安裝與 Nextcloud 運行環境的 PHP 版本相符的 PHP Redis 擴充。在標準的 Ubuntu 24.04 PHP 8.3 系統中,該軟體包為 `<package_name>` php-redis;Ubuntu 將其列為 PHP 8.3 Redis 擴充功能。安裝完成後,請重新啟動活動的 PHP 處理程序。在 `<config_name>` 檔案中config.php,請使用舊版 Redis 類別和連接區塊,而不是上述的 `KeyValueCache` 條目:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis-server.sock',
'port' => 0,
],
Ubuntu 的Noble php-redis 軟體包清單確認了軟體包映射關係。請勿同時配置兩個後端。儲存符合的配置後,請重複執行套接字 ping 和 Nextcloud 管理概覽檢查。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。
檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。
啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。
為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。
將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。
配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。
安全地執行 Nextcloud 的 OCC 修復程序,預覽資料庫更改,並檢查警告仍然存在的原因。
透過調整 PHP、Nginx 或 Apache、暫存和逾時設置,讓 Nextcloud 瀏覽器上傳更大的文件,並驗證是哪個限制阻止了文件上傳。