Aktualny podręcznik administracyjny Nextcloud nadal dokumentuje rozszerzenie PhpRedis do buforowania Redis i blokowania plików transakcyjnych. Opisuje również nowszy, bezrozszerzeniowy backend KeyValueCache dodany w Nextcloud 34.0.2. W tym podręczniku wykorzystano sprawdzoną konfigurację PhpRedis, ponieważ Ubuntu 24.04 zawiera pakiet rozszerzeń PHP 8.3 Redis. Nowszy backend jest dostępny, jeśli obsługuje go Twoja wersja Nextcloud, ale jego klucze konfiguracyjne różnią się; nie należy mieszać tych dwóch przykładów.
Rezultatem będzie lokalna usługa Redis dostępna tylko dla hosta Nextcloud, rozproszona pamięć podręczna i blokowanie plików obsługiwane przez Redis oraz APCu dla szybszej lokalnej pamięci podręcznej. Jest to typowy układ z jednym serwerem. Jeśli serwery WWW i PHP są rozdzielone na hosty, użyj współdzielonego punktu końcowego Redis z odpowiednimi ustawieniami sieciowymi zamiast poniższych ustawień hosta lokalnego.
Co Redis zmienia w instalacji Nextcloud
Redis udostępnia Nextcloud usługę klucz-wartość dla rozproszonych wpisów w pamięci podręcznej i transakcyjnych blokad plików. Blokady te pomagają zapobiegać konfliktom operacji, gdy wiele żądań dotyczy plików. Redis nie zastępuje bazy danych, pamięci masowej plików, PHP OPcache ani planu tworzenia kopii zapasowych Nextcloud. Na pojedynczym serwerze APCu jest generalnie szybsze w przypadku lokalnego buforowania w trakcie przetwarzania, podczas gdy Redis obsługuje współdzieloną pamięć podręczną i blokady. Nextcloud ostrzega również, że używanie Redis jako lokalnej pamięci podręcznej nie jest zalecane, szczególnie w przypadku wielu serwerów WWW.
Najnowszy podręcznik Nextcloud identyfikuje Redis jako obsługiwany backend i określa PhpRedis w wersji 2.2.6 lub nowszej dla metody opartej na rozszerzeniach. Archiwum pakietów Ubuntu 24.04 zawiera php8.3-redisi redis-server. Wersje pakietów mogą się zmieniać w miarę publikowania aktualizacji przez Ubuntu, dlatego należy instalować je ze skonfigurowanych repozytoriów Ubuntu, zamiast przypinać wersję skopiowaną ze starszego podręcznika. Odniesienia sprawdzone 6 października 2026 r.: dokumentacja buforowania pamięci Nextcloud , lista pakietów PhpRedis w Ubuntu 24.04 oraz lista pakietów serwera Redis w Ubuntu 24.04 .
Zanim zaczniesz
- Sprawdź katalog instalacyjny Nextcloud oraz środowisko uruchomieniowe PHP używane przez witrynę. Poniższe polecenia zakładają standardową instalację pakietu Ubuntu z PHP 8.3, Apache lub PHP-FPM oraz kontem usługi sieciowej
www-data.
- Utwórz kopię zapasową
config/config.phpi zanotuj, jak ją przywrócić. Dokładna ścieżka jest różna: na przykład instalacja pakietu może korzystać z /var/www/nextcloud/config/config.php, podczas gdy instalacja ręczna może być wykonywana gdzie indziej.
- Użyj okna konserwacyjnego, jeśli serwer obsługuje aktywne przesyłanie plików. Ponowne uruchomienie Apache'a lub PHP-FPM na krótko przerywa żądania internetowe.
1. Zainstaluj Redis, PhpRedis i APCu
Zaktualizuj metadane pakietu i zainstaluj demona oraz rozszerzenia PHP:
sudo apt update
sudo apt install redis-server php-redis php-apcu
Pakiet Ubuntu php-rediswybiera rozszerzenie dla zainstalowanej wersji PHP. Jeśli utrzymujesz wiele wersji PHP lub korzystasz z zewnętrznego repozytorium PHP, sprawdź, czy rozszerzenie jest zainstalowane dla konkretnej wersji PHP obsługującej NextCloud. Samo włączenie modułu dla środowiska uruchomieniowego PHP z wiersza poleceń nie gwarantuje, że Apache lub PHP-FPM będzie w stanie go załadować.
Włącz Redis podczas rozruchu i uruchom go teraz, a następnie sprawdź stan jego usług:
sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping
Prawidłowa lokalna odpowiedź Redis na ostatnie polecenie to PONG. Jeśli usługa jest nieaktywna, sprawdź ją sudo journalctl -u redis-server -n 50 --no-pagerprzed zmianą konfiguracji NextCloud.
2. Utrzymuj lokalny odbiornik Redis
W przypadku instalacji na pojedynczym hoście Redis nie musi nasłuchiwać na publicznym interfejsie. Konfiguracja pakietowa Ubuntu jest zazwyczaj zaprojektowana z myślą o dostępie lokalnym i trybie chronionym; /etc/redis/redis.confprzed jej zmianą należy ją sprawdzić:
sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf
Utrzymaj powiązanie Redis z pętlą zwrotną (zwykle 127.0.0.1i ::1) i pozostaw włączony tryb chroniony. Nie udostępniaj portu 6379do internetu ani nie wiąż go 0.0.0.0z tą lokalną konfiguracją. Po każdej zmianie konfiguracji Redis zrestartuj usługę i powtórz redis-cli ping.
W tym przewodniku wykorzystano protokół TCP na hoście lokalnym, aby zminimalizować zmiany uprawnień do gniazd. Gniazdo Unix to kolejna obsługiwana opcja lokalna, która może zmniejszyć obciążenie połączenia, ale ścieżka gniazda Redis, własność grupy, uprawnienia i konfiguracja Nextcloud muszą być zgodne. Jeśli celowo wybierzesz tę ścieżkę, postępuj zgodnie z przykładem gniazda z podręcznika Nextcloud.
3. Sprawdź, czy PHP może załadować oba rozszerzenia
Sprawdź moduły PHP wiersza poleceń:
php -m | grep -Ei '^(apcu|redis)$'
Powinny być widoczne obie nazwy. Jeśli brakuje którejś z nich, sprawdź włączone pliki modułów za pomocą php --inii zainstaluj odpowiedni pakiet dla swojej wersji PHP. Uruchom ponownie moduł obsługi PHP używany przez witrynę, aby jego serwery robocze załadowały nowe moduły. W przypadku serwera Apache z modułem mod_php, uruchom polecenie sudo systemctl restart apache2. W przypadku instalacji PHP-FPM z użyciem PHP 8.3, uruchom polecenie sudo systemctl restart php8.3-fpm; zrestartuj lub przeładuj serwer WWW, zależnie od potrzeb wdrożenia.
Sprawdzenie CLI to przydatny pierwszy sygnał, a nie kompletny dowód działania środowiska uruchomieniowego. Następnie należy użyć ustawień administracyjnych NextCloud i informacji o serwerze lub widoku informacji PHP, aby sprawdzić, czy proces internetowy rozpoznaje moduły pamięci podręcznej.
4. Dodaj ustawienia pamięci podręcznej do NextCloud
Otwórz istniejący plik config/config.phpw edytorze. Najpierw utwórz kopię zapasową pliku i scal te wpisy z istniejącą tablicą PHP przed jej zamknięciem );. Nie zastępuj całego pliku ani nie dodawaj drugiej kopii kluczy, które już istnieją.
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
Jawny adres pętli zwrotnej odpowiada lokalnej usłudze Redis. Jeśli zamiast tego używasz gniazda Unix, użyj ścieżki gniazda jako hosta Redis i skonfiguruj demona oraz uprawnienia tak, aby były zgodne. Jeśli Redis wymaga uwierzytelnienia, dodaj poprawną nazwę użytkownika i hasło listy kontroli dostępu Redis do tablicy redisi odpowiednio skonfiguruj Redis; nigdy nie wklejaj prawdziwego hasła do udostępnionego przykładu ani publicznego wpisu pomocy technicznej.
Zachowaj niezmienione istniejące ustawienia, takie jak instanceiddane uwierzytelniające bazy danych, zaufane domeny i katalog danych. Składnia tablicy PHP ma znaczenie: zachowaj przecinki między wpisami i upewnij się, że każde ustawienie występuje tylko raz.
5. Sprawdź poprawność pamięci podręcznej i blokowania plików
Uruchom sprawdzanie stanu wiersza poleceń NextCloud z poziomu katalogu instalacyjnego jako użytkownik usługi sieciowej. Zastąp przykładową ścieżkę, jeśli instalacja znajduje się gdzie indziej:
cd /var/www/nextcloud
sudo -u www-data php occ status
Sprawdź interfejs webowy w ustawieniach administracyjnych pod kątem ostrzeżeń dotyczących konfiguracji i upewnij się, że moduły Redis i APCu są widoczne dla środowiska wykonawczego PHP w przeglądarce. Następnie przetestuj normalne operacje na plikach na małym, niekrytycznym pliku: prześlij go, zmień jego nazwę, pobierz i usuń. Strona administratora nie powinna już zgłaszać braku pamięci podręcznej, gdy pamięć podręczna lokalna jest poprawnie skonfigurowana.
Pomyślny wynik PONGtestu dowodzi jedynie, że Redis odpowiada lokalnemu klientowi CLI. Kontrola administratora Nextcloud i rutynowe operacje na plikach pomagają zweryfikować rozszerzenie PHP, uprawnienia serwera WWW, ustawienia połączenia Redis i konfigurację aplikacji. Nie należy traktować szybszego ładowania strony podczas jednego testu jako dowodu mierzalnej poprawy wydajności; obciążenie, pamięć masowa, baza danych i wydajność procesu roboczego PHP wpływają na czas reakcji.
Rozwiązywanie typowych problemów
Strona administratora nadal zgłasza brak pamięci podręcznej
Sprawdź, czy klucz pamięci podręcznej nie jest zduplikowany lub błędnie wpisany, upewnij się, że memcache.localwskazuje na APCu i uruchom ponownie prawidłową usługę Apache lub PHP-FPM. Instalacja PHP tylko w interfejsie CLI może różnić się od środowiska uruchomieniowego PHP używanego przez witrynę.
Redis działa, ale NextCloud zgłasza błędy połączenia
Porównaj hosti portz config.phpprogramem nasłuchującym w /etc/redis/redis.conf. Potwierdź dostęp lokalny za pomocą redis-cli -h 127.0.0.1 -p 6379 pingi przejrzyj logi Redis i serwera WWW. Jeśli używasz gniazda lub hasła, sprawdź, czy ścieżka lub dane uwierzytelniające są zgodne po obu stronach.
Operacje na plikach nie powiodą się po zmianie
Tymczasowo przywróć kopię zapasową, config.phpjeśli instancja stanie się bezużyteczna, a następnie sprawdź logi PHP i serwera WWW. Sprawdź interpunkcję w tablicy, upewnij się, że usługa Redis jest aktywna i upewnij się, że żadna zapora sieciowa ani niestandardowa lista kontroli dostępu (ACL) Redis nie blokuje procesu WWW. Unikaj czyszczenia danych Redis jako pierwszego kroku rozwiązywania problemów; sprawdź połączenie i konfigurację przed usunięciem wpisów pamięci podręcznej lub blokad.
Czego ta konfiguracja nie obejmuje
Jest to konfiguracja jednoserwerowa, a nie projekt Redis o wysokiej dostępności. Nie konfiguruje replikacji Redis, Sentinel, TLS, zdalnego hosta pamięci podręcznej, pamięci sesji ani klastrowanego wdrożenia Nextcloud. Wieloserwerowe węzły Nextcloud muszą współdzielić tę samą rozproszoną pamięć podręczną i blokujące zaplecze; host lokalny na każdym węźle utworzyłby oddzielne instancje Redis i zniweczyłby ten wymóg. W przypadku topologii zdalnej lub klastrowej należy postępować zgodnie z odpowiednią sekcją konfiguracji Nextcloud i zabezpieczyć komunikację Redis dla danego środowiska.
Po ustabilizowaniu konfiguracji należy monitorować wykorzystanie pamięci Redis oraz przegląd administracyjny Nextcloud. Przydziel wystarczającą ilość pamięci na buforowanie i blokowanie, unikaj nieprzejrzanych zasad usuwania, które mogłyby usunąć dane z blokad, oraz utrzymuj standardowe kopie zapasowe baz danych i plików. Buforowanie Redis może zmniejszyć obciążenie buforowania i blokowania, ale jest to tylko jeden z elementów sprawnej instalacji Nextcloud, a nie substytut planowania pojemności.