Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd
Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.
Aby usunąć ostrzeżenie Nextcloud o blokowaniu plików transakcyjnych, najpierw upewnij się, że blokowanie jest włączone, a następnie skonfiguruj trwałe zaplecze zgodne z Redis, takie jak Redis lub Valkey. Na małej instancji Nextcloud może domyślnie korzystać z zaplecza blokowania bazy danych; w przypadku serwera produkcyjnego lub obciążenia współdzielonego, blokowanie oparte na Redis jest typowym wyborem, ponieważ zmniejsza ruch związany z blokadami do bazy danych. Nie przypisuj blokad plików do Memcached: Nextcloud ostrzega, że wartości z pamięci podręcznej mogą nieoczekiwanie zniknąć.
Transakcyjne blokowanie plików chroni operacje na plikach przed konfliktami zapisu i może zwolnić blokady w przypadku przerwania przesyłania lub innej transakcji. Pomaga zapobiegać uszkodzeniom podczas normalnego działania, w tym pracy z plikami współdzielonymi i pamięcią zewnętrzną. Nie uniemożliwia ono jednoczesnej edycji tego samego dokumentu przez dwie osoby ani nie zapewnia wskaźników obecności; kontroluje jednoczesne zapisywanie. Zapoznaj się z dokumentacją transakcyjnego blokowania plików w NextCloud 35 .
memcache.locking.W przypadku małego serwera domowego blokowanie bazy danych może być wystarczające, jeśli nie ma ostrzeżenia o blokowaniu i nie ma obciążenia bazy danych. Wybierz Redis lub Valkey w przypadku obciążonych instancji, wielu serwerów aplikacji lub gdy chcesz, aby blokady plików były obsługiwane poza bazą danych. Aktualne wytyczne dotyczące buforowania pamięci Nextcloud 35 zalecają APCu do lokalnej pamięci podręcznej i Redis do blokowania w typowych wdrożeniach na jednym serwerze. Wszystkie klastrowane węzły internetowe muszą korzystać z tego samego punktu końcowego lub klastra Redis lub Valkey.
Znajdź aktywny plik konfiguracyjny Nextcloud, zazwyczaj config/config.phpw katalogu instalacyjnym Nextcloud. Przed zmianą wykonaj kopię zapasową. Wyszukaj filelocking.enabledi memcache.locking. Informacje dotyczące konfiguracji domyślnie ustawiają blokowanie na włączone; jeśli znajdziesz jawną wartość „fałsz”, zmień ją na „prawda” lub usuń to nadpisanie.
'filelocking.enabled' => true,
Nie dodawaj drugiej kopii istniejącego klucza. Tablice konfiguracji PHP powinny zawierać jedną skuteczną wartość dla każdego ustawienia. Jeśli korzystasz z kontenera lub panelu hostingu zarządzanego, wprowadź zmiany za pomocą obsługiwanego mechanizmu konfiguracji, aby zostały one zachowane po aktualizacjach lub ponownym wdrożeniu. W dokumencie „Ostrzeżenia administratora NextCloud 35” znajduje się ostrzeżenie o blokowaniu oraz linki do wymagań zaplecza.
W systemach Debian i Ubuntu nazwy pakietów zazwyczaj wyglądają tak: redis-serveri php-redis; użyj pakietów swojej dystrybucji i dopasuj moduł PHP do wersji PHP używanej przez serwer WWW. Jeśli korzystasz z klasycznego zaplecza Redis, zainstaluj i uruchom usługę Redis oraz sprawdź, czy rozszerzenie PHP Redis jest włączone dla interfejsu SAPI. Moduł PHP dostępny tylko w interfejsie wiersza poleceń nie gwarantuje, że PHP-FPM lub Apache mogą go załadować.
Dodaj blokujący backend i szczegóły połączenia do istniejącej config.phptablicy. W tym przykładzie założono, że Redis działa na tej samej maszynie, nasłuchuje na porcie localhost 6379 i jest dostępny dla procesu PHP Nextcloud:
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
],
Ustaw dane uwierzytelniania, jeśli serwer Redis ich wymaga. Unikaj udostępniania Redis w publicznym internecie; ogranicz go do hosta lub sieci prywatnej i skonfiguruj reguły uwierzytelniania i zapory sieciowej. W przypadku gniazda Unix użyj ścieżki gniazda jako hosta Redis i portu 0 oraz upewnij się, że użytkownik serwera WWW ma dostęp do tego gniazda. Nie kopiuj ustawień localhost do wdrożenia wieloserwerowego, chyba że Redis jest rzeczywiście lokalny i spójnie współdzielony; wszystkie węzły aplikacji Nextcloud muszą obsługiwać ten sam backend.
W NextCloud w wersji 34.0.2 lub nowszej KeyValueCache może łączyć się z Redis lub Valkey bez oddzielnie instalowanego rozszerzenia PHP. Skonfiguruj zaplecze i magazyn klucz-wartość w następujący sposób, zastępując hosta i wszelkie dane uwierzytelniające wartościami swojego środowiska:
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => 'localhost',
'port' => 6379,
],
],
Nie konfiguruj Redis i KeyValueCache jako konkurencyjnych dostawców blokad. Postępuj zgodnie z dokumentacją Nextcloud dotyczącą poświadczeń, TLS, gniazd, Sentinel lub topologii klastra, zamiast dostosowywać przykład pojedynczego serwera na podstawie domysłów.
Uruchom ponownie usługę zgodną z Redis, jeśli zmieniłeś jej konfigurację, a następnie uruchom ponownie serwer WWW lub proces PHP-FPM, jeśli zainstalowałeś lub włączyłeś rozszerzenie PHP. Sprawdź status usługi, używając nazwy usługi dla swojej dystrybucji, na przykład systemctl status redis-serverw wielu systemach Debian lub Ubuntu. Upewnij się, że usługa jest aktywna i że proces PHP może się połączyć. Wdrożenia kontenerowe powinny używać nazwy usługi Redis w sieci kontenerowej, a nie localhost, chyba że obie usługi współdzielą przestrzeń nazw sieciowych.
Zaloguj się do Nextcloud jako administrator i odśwież przegląd Administracji. Ostrzeżenie o blokowaniu pliku transakcyjnego powinno zniknąć, gdy skonfigurowany backend będzie dostępny i ustawienie zostanie załadowane. Prześlij, pobierz i zsynchronizuj plik testowy, a następnie przejrzyj logi Nextcloud i PHP, jeśli pojawi się błąd połączenia lub uprawnień Redis. Ostrzeżenie, które pozostaje, zazwyczaj wskazuje na literówkę, zduplikowany klucz konfiguracji, nieprawidłowe rozszerzenie PHP/SAPI, zablokowane połączenie sieciowe, nieprawidłowe uprawnienia gniazda lub niedostępny backend. Usuń tę konkretną przyczynę zamiast wyłączać blokowanie.
Aby zapoznać się z opcjami specyficznymi dla danego wdrożenia, przed zmianą topologii należy zapoznać się z oficjalnymi dokumentami dotyczącymi danej wersji: blokowania plików transakcyjnych , buforowania pamięci i konfiguracji Redis/Valkey oraz parametrów konfiguracji .
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.
Ustaw limit pamięci PHP, z którego faktycznie korzysta Nextcloud, uruchom ponownie odpowiednią usługę i potwierdź ustawienie 512 MB w przeglądzie administratora.
Zamontuj zgodny obiekt pamięci masowej w Nextcloud, korzystając z zaplecza S3, z odpowiednim punktem końcowym, poświadczeniami, zakresem dostępu i krokami weryfikacji.