Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić
Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
W Nextcloud 34.0.2 wprowadzono dołączony KeyValueCachebackend kompatybilny z Redis, dzięki czemu obecna wersja Nextcloud może korzystać z Redis bez instalowania rozszerzenia PHP Redis. Na pojedynczym serwerze Ubuntu 24.04 należy użyć APCu do szybkiego lokalnego buforowania oraz Redis do rozproszonego buforowania i blokowania plików transakcyjnych, połączonych przez gniazdo Unix. Dzięki temu Redis jest odłączony od sieci i Nextcloud korzysta ze współdzielonej pamięci podręcznej, która działa w przypadku wszystkich żądań PHP.
Aktualny podręcznik administratora Nextcloud 35 opisuje dwie ścieżki Redis. W przypadku Nextcloud w wersji 34.0.2 lub nowszej zalecana ścieżka KeyValueCacheto Predis dołączony do Nextcloud; instalujesz serwer Redis i ustawiasz memcache.kvstore, ale nie potrzebujesz php-redis. Starsze wersje Nextcloud używają rozszerzenia PhpRedis i innego config.phpbloku. Sprawdź swoją wersję za pomocą sudo -u www-data php /var/www/nextcloud/occ status, zastępując ścieżkę, jeśli instalacja znajduje się gdzie indziej.
W tym przewodniku założono, że Nextcloud i Redis działają na tym samym hoście Ubuntu, serwer WWW działa jako [ www-datausługa], a PHP i Redis są zarządzane bezpośrednio. Jeśli zainstalowałeś Nextcloud za pomocą Snap, AIO, Dockera lub innego urządzenia, postępuj zgodnie z konwencjami dotyczącymi usług i systemów plików tego pakietu, zamiast bezmyślnie stosować polecenia na poziomie hosta. APCu jest szybsze w przypadku lokalnego buforowania niż Redis, podczas gdy Redis nadaje się do rozproszonego buforowania i blokowania plików. Zapoznaj się z dokumentacją buforowania pamięci Nextcloud .
Zaktualizuj indeks pakietów Ubuntu, zainstaluj serwer Redis i moduł PHP APCu, a następnie włącz Redis podczas rozruchu:
sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server

W Ubuntu 24.04 domyślna linia PHP to 8.3 i php-apcujest to nazwa pakietu dystrybucyjnego. Redis to osobna usługa; APCu jest ładowany przez PHP. Po zainstalowaniu APCu należy zrestartować obsługę PHP, aby proces PHP w przeglądarce załadował moduł. Jeśli używasz PHP-FPM, zazwyczaj jest to 8.3 php8.3-fpm; jeśli Apache używa mod_php, należy zrestartować 8.3 apache2. Przed ponownym uruchomieniem sprawdź nazwy aktywnych usług.
W przypadku konfiguracji z jednym hostem użyj gniazda Unix i wyłącz nasłuchiwacz TCP Redis. Edytuj /etc/redis/redis.conf. Zaktualizuj istniejące dyrektywy active zamiast pozostawiać wiele sprzecznych kopii, a następnie ustaw:
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770

port 0Wyłącza port TCP; Redis nasłuchuje przez ścieżkę gniazda. Tryb uprawnień 770pozwala właścicielowi i grupie Redis na dostęp do gniazda, jednocześnie odmawiając dostępu innym użytkownikom lokalnym. Dodaj konto serwera WWW do grupy Redis:
sudo usermod -aG redis www-data
sudo systemctl restart redis-server
Po zmianie członkostwa w grupie uruchom ponownie usługę PHP-FPM lub Apache, ponieważ uruchomione procesy zachowują starą listę grup. Użyj usługi, która faktycznie uruchamia PHP w NextCloud. Dokumentacja Redis zaleca ograniczenie dostępu do zaufanych klientów; gniazdo lokalne zapobiega ujawnianiu portu pamięci podręcznej w interfejsie internetowym. Zobacz wskazówki dotyczące bezpieczeństwa Redis .
Utwórz kopię zapasową config/config.php, a następnie dodaj te wpisy do istniejącej tablicy konfiguracji PHP. Nie zastępuj reszty pliku. Użyj ścieżki, w której znajduje się instalacja 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',
],
],

Ukośnik na początku ścieżki hosta informuje usługę KeyValueCache w Nextcloud o korzystaniu z gniazda Unix, więc nie jest wymagane żadne ustawienie portu TCP ani protokołu. Redis udostępnia zarówno [ brakuje wartości], jak memcache.distributedi [brakuje wartości memcache.locking]; ten drugi przenosi blokady plików transakcyjnych z bazy danych. Pozostań memcache.localw APCu, aby uzyskać dostęp do lokalnej pamięci podręcznej z mniejszym opóźnieniem. Dokładne wpisy i opcje gniazd znajdują się w instrukcjach Nextcloud dotyczących KeyValueCache i gniazd Unix oraz w przewodniku blokowania plików transakcyjnych .
Najpierw sprawdź, czy usługa Redis jest aktywna i czy gniazdo odpowiada:
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping

Oczekiwana odpowiedź na drugie polecenie to PONG. Następnie zaloguj się do Nextcloud i otwórz przegląd ustawień administracyjnych. Upewnij się, że ostrzeżenie o lokalnej pamięci podręcznej zniknęło i sprawdź dziennik Nextcloud, czy nadal występuje ostrzeżenie dotyczące Redis lub pamięci podręcznej. Możesz również uruchomić polecenie sudo -u www-data php /var/www/nextcloud/occ status, aby upewnić się, że instancja nadal się ładuje; to polecenie sprawdza dostępność Nextcloud, a nie samą pamięć podręczną.
Jeśli Redis zgłasza „Odmowa dostępu” lub Nextcloud nie może się połączyć, sprawdź, czy gniazdo istnieje, www-datanależy do redisgrupy oraz czy grupa i tryb gniazda zezwalają na dostęp. Po zmianie przynależności do grupy uruchom ponownie Redis i obsługę PHP. Jeśli Redis nie może utworzyć gniazda, sprawdź, czy nie ma literówki w skonfigurowanej ścieżce i sprawdź sudo journalctl -u redis-server -n 50. Nie rozwiązuj problemu z uprawnieniami do gniazda, otwierając Redis w sieci publicznej.
Jeśli Twoja wersja Nextcloud jest starsza niż 34.0.2, zainstaluj rozszerzenie PHP Redis zgodne z wersją PHP obsługującą Nextcloud. W standardowej konfiguracji Ubuntu 24.04 PHP 8.3 pakiet ma nazwę php-redis; Ubuntu wyświetla go jako rozszerzenie PHP 8.3 Redis. Po zainstalowaniu uruchom ponownie aktywny moduł obsługi PHP. W config.php, zamiast powyższych wpisów KeyValueCache, użyj starszych klas Redis i bloku połączenia:
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis-server.sock',
'port' => 0,
],
Lista pakietów Noble php-redis w Ubuntu potwierdza mapowanie pakietów. Nie konfiguruj obu zapleczy jednocześnie. Po zapisaniu pasującej konfiguracji powtórz ping gniazda i sprawdzenie przeglądu administratora Nextcloud.
Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.
Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.
Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.
Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.
Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.
Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.
Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.
Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.
Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.
Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.