Napraw błąd Nextcloud „Blokowanie plików transakcyjnych nie jest skonfigurowane”

Jeśli Nextcloud wyświetli ostrzeżenie, że blokowanie plików transakcyjnych nie jest skonfigurowane lub jest wyłączone, operacje na plikach mogą być mniej chronione przed jednoczesnymi zapisami i przerwanymi transferami. Zazwyczaj rozwiązaniem jest skonfigurowanie obsługiwanego magazynu klucz-wartość, takiego jak Redis lub Valkey, do blokowania. Najpierw zidentyfikuj sposób instalacji Nextcloud, a następnie skonfiguruj usługę pamięci podręcznej i Nextcloud razem; sama instalacja Redis nie zniknie z ostrzeżenia.

W aktualnym podręczniku administratora Nextcloud podano, że blokowanie transakcyjne domyślnie korzysta z bazy danych. Zaplecze bazy danych może działać, ale zwiększa obciążenie bazy danych. Redis lub Valkey mogą zapewnić dedykowane zaplecze blokowania. Dokładny tekst ostrzeżenia różni się w zależności od wersji Nextcloud: w aktualnej dokumentacji podano: „Blokowanie plików transakcyjnych jest wyłączone, co może prowadzić do problemów z warunkami wyścigu”. Osobne ostrzeżenie dotyczące pamięci podręcznej nie jest tym samym problemem. Zobacz oficjalny przewodnik blokowania plików transakcyjnych i odnośnik do ostrzeżeń na stronie administratora .

Zanim zmienisz serwer

Poniższe kroki zakładają, że administrujesz hostem Nextcloud. Poniższe polecenia używają systemu Debian lub Ubuntu z konwencjonalną instalacją pakietów; nazwy pakietów, nazwy usług, wersje PHP i ścieżki konfiguracji różnią się w innych dystrybucjach Linuksa. Jeśli korzystasz z Nextcloud AIO, Docker, Snap, TrueNAS lub obrazu dostawcy hostingu, postępuj zgodnie z instrukcjami instalacji i ponownego uruchamiania usług dla tego wdrożenia. Instalacja pakietów PHP na hoście może nie zmienić środowiska PHP w kontenerze lub urządzeniu.

  • Znajdź katalog główny Nextcloud i jego aktywną wersję config/config.php.
  • Przed edycją pliku należy wykonać jego kopię zapasową. Może on zawierać dane uwierzytelniające do bazy danych i inne poufne informacje.
  • Sprawdź, czy Nextcloud korzysta z jednego, czy kilku serwerów WWW. Konfiguracja wielowęzłowa wymaga jednego współdzielonego serwera Redis/Valkey lub klastra dostępnego dla każdego węzła Nextcloud.
  • Zaplanuj krótkie okno konserwacji, jeśli Twoim użytkownikom zależy na nieprzerwanym przesyłaniu plików.

Krok 1: Potwierdź ostrzeżenie i typ instalacji

Zaloguj się jako administrator i otwórz Ustawienia administracyjne , a następnie zapoznaj się z omówieniem lub ostrzeżeniami dotyczącymi zabezpieczeń i konfiguracji. Zapisz dokładny komunikat. Jeśli strona informuje jedynie o braku skonfigurowanej pamięci podręcznej, jest to inna kontrola. Skonfiguruj lokalną pamięć podręczną, taką jak APCu, w razie potrzeby, ale nie zakładaj, że będzie ona zapewniać blokowanie transakcji. Nextcloud dokumentuje, że ustawienia pamięci podręcznej muszą być jawnie włączone w config.php.

W tradycyjnej instalacji Linuksa użyj powłoki, aby zidentyfikować ścieżkę wdrożenia i sprawdzić plik konfiguracyjny bez zapisywania sekretów w dzienniku terminala współdzielonego. Na przykład z serwera:

cd /var/www/nextcloud
ls -l config/config.php

Zastąp /var/www/nextcloudrzeczywistą ścieżką. W przypadku kontenerów zidentyfikuj kontener i jego zamontowaną konfigurację, zamiast edytować plik po stronie hosta, którego nie używa działająca instancja.

Krok 2: Zainstaluj i uruchom magazyn kluczy i wartości

W przypadku Debiana lub Ubuntu tradycyjny serwer Redis zazwyczaj korzysta z usługi Redis i rozszerzenia PHP Redis. Zainstaluj pakiety zgodne z wersją PHP używaną przez serwer WWW:

sudo apt update
sudo apt install redis-server php-redis
sudo systemctl enable --now redis-server
sudo systemctl status redis-server

Status powinien wskazywać, że usługa jest aktywna. Sprawdź, czy środowisko wykonawcze PHP obsługujące Nextcloud może załadować rozszerzenie Redis. W standardowej instalacji php -m | grep -i rediswystarczy szybkie sprawdzenie CLI, ale PHP w CLI i PHP w przeglądarce mogą używać różnych wersji plików konfiguracyjnych. Jeśli moduł nie jest dostępny w środowisku wykonawczym, zainstaluj lub włącz odpowiedni pakiet i zrestartuj PHP-FPM lub serwer WWW.

NextCloud w wersji 34.0.2 i nowszych oferuje również pakiet KeyValueCachebackendu dla sklepów zgodnych z Redis. Nie wymaga on rozszerzenia PHP Redis. Może to być przydatne, gdy środowisko hostingowe nie może zainstalować modułów PHP, ale nadal wymaga działającej usługi Redis lub Valkey. Aktualny przewodnik po buforowaniu pamięci NextCloud opisuje oba podejścia. Wybierz jedną konfigurację backendu poniżej, zamiast dodawać obie.

Krok 3: Skonfiguruj blokowanie w Nextcloud

Edytuj aktywne config/config.phpi dodaj wybrane wpisy do istniejącej $CONFIGtablicy. Zachowaj składnię PHP i przecinki. Nie twórz drugiej tablicy konfiguracyjnej ani nie duplikuj kluczy. Zachowaj istniejące ustawienia pamięci podręcznej, chyba że rozumiesz, dlaczego należy je zmienić.

Opcja A: Redis z rozszerzeniem PHP Redis

Użyj tej opcji, jeśli środowisko uruchomieniowe PHP w przeglądarce ma phprediszainstalowane obsługiwane rozszerzenie. Lokalny serwer Redis nasłuchujący na porcie 6379 może użyć takiej konfiguracji:

'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
    'timeout' => 0.0,
],

Jeśli Redis wymaga uwierzytelnienia, skonfiguruj prawidłowe hasło config.phpi zabezpiecz uprawnienia pliku. Nie udostępniaj Redis publicznie. Powiąż go z localhost lub chronioną siecią prywatną i w razie potrzeby użyj gniazda Unix.

Opcja B: KeyValueCache z Redis lub Valkey

Użyj tej opcji, jeśli Twoja wersja NextCloud obsługuje dostawcę w pakiecie i wolisz nie instalować rozszerzenia PHP Redis. W przypadku usługi lokalnej nasłuchującej na porcie 6379, minimalny przykład to:

'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '127.0.0.1',
        'port' => 6379,
    ],
],

Dodaj udokumentowane ustawienia uwierzytelniania, TLS, gniazda, Sentinel lub klastra, jeśli Twoja usługa ich używa. Nie kopiuj danych uwierzytelniających z przykładu. Aby uzyskać szczegółowe informacje o parametrach i obsługiwanych topologiach, skorzystaj z oficjalnego dokumentu referencyjnego dotyczącego konfiguracji pamięci podręcznej .

Krok 4: Sprawdź łączność i ustawienia wieloserwerowe

Nextcloud musi mieć możliwość połączenia ze skonfigurowanym serwerem pamięci podręcznej przy użyciu tego samego hosta, portu, gniazda i danych logowania, co usługa. Częstym błędem jest konfigurowanie localhostkażdego węzła webowego Nextcloud, podczas gdy Redis działa tylko na jednym oddzielnym hoście. W przypadku wdrożenia wieloserwerowego należy skonfigurować wszystkie węzły webowe tak, aby korzystały z tego samego serwera lub klastra Redis. Ogranicz dostęp sieciowy do węzłów Nextcloud i chroń Redis za pomocą odpowiednich reguł uwierzytelniania i zapory sieciowej.

W przypadku gniazda Unix należy sprawdzić, czy konto PHP/serwera WWW może odczytywać i zapisywać dane w gnieździe. Zmiany uprawnień lub grup różnią się w zależności od systemu operacyjnego, dlatego należy postępować zgodnie z dokumentacją Redis/Valkey i dystrybucji, zamiast stosować ogólne uprawnienia, takie jak dostęp z możliwością zapisu dla wszystkich użytkowników. Odmowa połączenia, błąd uwierzytelnienia lub błąd uprawnień gniazda może uniemożliwić Nextcloud korzystanie z dostawcy blokady, nawet gdy klucz konfiguracyjny jest obecny.

Krok 5: Uruchom ponownie odpowiednie usługi

Po zapisaniu konfiguracji należy ponownie uruchomić usługę Redis, jeśli jej ustawienia uległy zmianie, a następnie ponownie uruchomić środowisko wykonawcze PHP obsługujące Nextcloud. Na przykład instalacja Apache może wymagać ponownego uruchomienia Apache, podczas gdy instalacja PHP-FPM wymaga ponownego uruchomienia odpowiedniej usługi PHP-FPM. W niektórych dystrybucjach nazwy usług zawierają numery wersji PHP. W przypadku kontenerów należy ponownie utworzyć lub ponownie uruchomić odpowiednią usługę za pomocą metody obsługiwanej we wdrożeniu. Unikaj bezmyślnego restartowania niepowiązanych usług na serwerze produkcyjnym.

Jeśli Nextcloud zwróci błąd konfiguracji lub składni, przywróć kopię zapasową i sprawdź, czy nie brakuje przecinka, nie pasuje cudzysłów, nie ma zduplikowanego klucza lub czy nie trzeba edytować nieprawidłowego parametru config.php. Ustawienia tablicy PHP muszą pozostać w istniejącej strukturze konfiguracji.

Krok 6: Sprawdź konfigurację i przetestuj operacje na plikach

Odśwież przegląd administratora i sprawdź, czy ostrzeżenie o blokowaniu plików transakcyjnych zniknęło. Jeśli skonfigurowałeś lokalną pamięć podręczną i nadal widzisz ostrzeżenie o pamięci podręcznej, sprawdź to osobno; Nextcloud zaleca APCu do lokalnego buforowania w wielu wdrożeniach na jednym serwerze, podczas gdy Redis obsługuje blokowanie i rozproszone buforowanie. Nie dodawaj Redis jako domyślnej lokalnej pamięci podręcznej, szczególnie w konfiguracji wieloserwerowej.

Możesz również sprawdzić efektywne ustawienia blokowania za pomocą narzędzia wiersza poleceń Nextcloud. Uruchom occz katalogu Nextcloud jako konto serwera WWW; w systemach Debian/Ubuntu to konto zazwyczaj wygląda następująco www-data:

sudo -u www-data php occ config:system:get memcache.locking

Wartość powinna odpowiadać wybranemu zapleczu, takiemu jak \OC\Memcache\Redislub \OC\Memcache\KeyValueCache. Jeśli polecenie nie może znaleźć ustawienia, sprawdź ścieżkę, użytkownika wykonującego i aktywny plik konfiguracyjny. Oficjalny podręcznik OCC wyjaśnia, jak uruchamiać polecenia administracyjne.

Na koniec prześlij mały plik testowy, zmień jego nazwę, pobierz go i sprawdź, czy klient stacjonarny lub mobilny może zsynchronizować zmianę. Te kontrole nie symulują każdego współbieżnego obciążenia, ale potwierdzają, że zwykłe operacje na plikach nadal działają po zmianie. W przypadku serwera zajętego lub klastrowanego, monitoruj dziennik Nextcloud i dostępność Redis/Valkey podczas normalnego użytkowania. Jeśli ostrzeżenie nadal występuje, sprawdź, czy środowisko uruchomieniowe PHP w przeglądarce ma rozszerzenie podczas korzystania z Opcji A, czy host pamięci podręcznej jest osiągalny, czy poświadczenia i uprawnienia gniazd są poprawne, a wszystkie węzły korzystają z tego samego zaplecza.

Co blokowanie plików transakcyjnych robi, a czego nie robi

Blokada transakcyjna pomaga zapobiegać uszkodzeniom plików w przypadku nakładania się operacji, obsługuje przerwane transakcje i koordynuje zmiany dotyczące plików współdzielonych i pamięci zewnętrznej. Nie rezerwuje dokumentu, więc tylko jedna osoba może go edytować, nie wyświetla, kto jeszcze edytuje, ani nie łączy jednoczesnych edycji. Potraktuj ostrzeżenie jako problem z konfiguracją serwera, a następnie przetestuj normalne przesyłanie i synchronizację po skonfigurowaniu zaplecza. Aby umożliwić wspólną edycję, użyj aplikacji przeznaczonej do współtworzenia, zamiast polegać na blokadach plików.

Zostaw komentarz

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

10 najlepszych narzędzi do pingowania w celu znajdowania urządzeń w sieci

Porównaj 10 narzędzi do pingowania, które umożliwiają szybkie wykrywanie sieci LAN, skanowanie międzyplatformowe i zarządzanie adresami IP. Dowiedz się, co narzędzie pingujące może Ci powiedzieć, a czego nie.

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

6 najlepszych narzędzi do zarządzania siecią, umożliwiających śledzenie wydajności

Porównaj sześć narzędzi do zarządzania siecią służących do monitorowania wydajności, obejmujących zasięg SNMP, mapowanie, alerty, modele wdrażania i kompromisy kosztów.

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Ping Monitor: 7 darmowych i otwartych narzędzi do monitorowania dostępności sieci

Porównaj siedem darmowych i otwartych monitorów pingów — od kompletnych pakietów sieciowych po ukierunkowane sondy opóźnień — i wybierz odpowiedni monitor pod kątem dostępności, utraty pakietów i historii.

QoS w sieciach: czym jest jakość usług i jak działa

QoS w sieciach: czym jest jakość usług i jak działa

Dowiedz się, co oznacza QoS w sieciach, w jaki sposób oznaczenia DSCP i kolejki ruchu nadają priorytet aplikacjom głosowym, wideo i biznesowym oraz czego QoS nie jest w stanie naprawić.

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Najlepsze oprogramowanie serwera SFTP do bezpiecznego przesyłania plików

Porównaj niezawodne oprogramowanie serwera SFTP dla systemów Windows i Linux, w tym OpenSSH, Bitvise, SolarWinds i SFTPGo. Znajdź rozwiązanie odpowiednie dla swoich potrzeb w zakresie bezpieczeństwa i transferu plików.

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

7 najlepszych narzędzi do zarządzania adresami IP dla zespołów sieciowych

Porównaj siedem narzędzi do zarządzania adresami IP służących do wykrywania podsieci, koordynacji DNS i DHCP, inwentaryzacji sieci i otwartego oprogramowania IPAM.

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

6 najlepszych narzędzi do monitorowania serwerów Windows Server zapewniających lepszą dostępność i wydajność

Porównaj sześć narzędzi do monitorowania systemu Windows Server pod kątem zbierania danych systemu Windows, widoczności aplikacji, modelu wdrażania i licencjonowania, aby znaleźć odpowiednie rozwiązanie.

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

10 najlepszych narzędzi do skanowania sieci w celu wykrywania urządzeń i adresów IP

Porównaj narzędzia do skanowania sieciowego umożliwiające szybkie wykrywanie urządzeń, skanowanie adresów IP na wielu platformach oraz zarządzanie IPAM w przedsiębiorstwie. Znajdziesz tu wskazówki dotyczące dopasowania każdej opcji do swojej sieci.

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Najlepsze praktyki monitorowania sieci: co śledzić i jakich narzędzi używać

Zbuduj praktyczny monitoring sieci z przejrzystym zakresem urządzeń, przydatnymi wskaźnikami wydajności, przydatnymi alertami oraz porównaniem SolarWinds NPM, PRTG i OpManager.

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Jak używać Nmap do śledzenia trasy i odczytywania ścieżki sieciowej

Użyj opcji --traceroute programu Nmap, aby mapować przeskoki do autoryzowanego hosta, zrozumieć dane wyjściowe dotyczące przeskoków i czasu RTT oraz rozwiązywać problemy z brakującymi odpowiedziami bez nadmiernego skanowania.