Dacă Nextcloud afișează un avertisment că blocarea fișierelor tranzacționale nu este configurată sau este dezactivată, operațiunile cu fișierele pot fi mai puțin protejate împotriva scrierilor simultane și a transferurilor întrerupte. Soluția obișnuită este configurarea unui depozit cheie-valoare acceptat, cum ar fi Redis sau Valkey, pentru blocare. Mai întâi identificați cum este instalat Nextcloud, apoi configurați serviciul cache și Nextcloud împreună; instalarea Redis singură nu șterge avertismentul.
Manualul de administrare actual al Nextcloud precizează că blocarea tranzacțională utilizează baza de date în mod implicit. Backend-ul bazei de date poate funcționa, dar adaugă încărcare suplimentară pentru baza de date. Redis sau Valkey pot oferi un backend de blocare dedicat. Textul exact de avertizare variază în funcție de versiunea Nextcloud: documentația actuală menționează „Blocarea fișierelor tranzacționale este dezactivată, acest lucru ar putea duce la probleme cu condițiile de concurență”. O avertizare separată privind memoria cache nu reprezintă aceeași problemă. Consultați ghidul oficial de blocare a fișierelor tranzacționale și referința de avertizare a paginii de administrare .
Înainte de a schimba serverul
Acești pași presupun că administrați gazda Nextcloud. Comenzile de mai jos utilizează Debian sau Ubuntu cu o instalare convențională a pachetelor; numele pachetelor, numele serviciilor, versiunile PHP și căile de configurare variază în funcție de alte distribuții Linux. Dacă rulați Nextcloud AIO, Docker, Snap, TrueNAS sau o imagine de la un furnizor de găzduire, urmați instrucțiunile implementării respective pentru instalarea și repornirea serviciilor. Instalarea pachetelor PHP pe gazdă poate să nu modifice mediul PHP din interiorul unui container sau al unui dispozitiv.
- Găsiți rădăcina web Nextcloud și fișierul său activ
config/config.php.
- Faceți o copie de rezervă protejată a acelui fișier înainte de a-l edita. Acesta poate conține acreditări ale bazei de date și alte secrete.
- Confirmați dacă Nextcloud utilizează un singur server web sau mai multe. O configurație cu mai multe noduri necesită un server Redis/Valkey partajat sau un cluster accesibil de către fiecare nod Nextcloud.
- Planificați o fereastră scurtă de întreținere dacă utilizatorii dvs. depind de încărcări neîntrerupte de fișiere.
Pasul 1: Confirmați avertismentul și tipul de instalare
Conectați-vă ca administrator și deschideți Setările de administrare , apoi examinați prezentarea generală sau avertismentele de securitate și configurare. Înregistrați mesajul exact. Dacă pagina spune doar că nu este configurată nicio memorie cache, aceasta este o verificare diferită; configurați o memorie cache locală, cum ar fi APCu, după caz, dar nu presupuneți că va oferi blocare tranzacțională. Nextcloud documentează că setările de memorie cache trebuie activate explicit în config.php.
Într-o instalare tradițională de Linux, utilizați shell-ul pentru a identifica calea de implementare și a inspecta fișierul de configurare fără a afișa secretele într-un jurnal de terminal partajat. De exemplu, de pe server:
cd /var/www/nextcloud
ls -l config/config.php
Înlocuiți /var/www/nextcloudcu calea reală. Pentru containere, identificați containerul și configurația sa montată în loc să editați un fișier gazdă pe care instanța care rulează nu îl folosește.
Pasul 2: Instalați și porniți un depozit cheie-valoare
Pentru Debian sau Ubuntu, backend-ul Redis tradițional folosește de obicei serviciul Redis și extensia PHP Redis. Instalați pachete care corespund versiunii PHP utilizate de serverul web:
sudo apt update
sudo apt install redis-server php-redis
sudo systemctl enable --now redis-server
sudo systemctl status redis-server
Ieșirea de stare ar trebui să raporteze că serviciul este activ. Confirmați că runtime-ul PHP care deservește Nextcloud poate încărca extensia Redis. Într-o instalare standard, php -m | grep -i rediseste o verificare CLI rapidă, dar CLI PHP și web PHP pot utiliza versiuni sau fișiere de configurare diferite. Dacă modulul lipsește din runtime-ul web, instalați sau activați pachetul corespunzător și reporniți PHP-FPM sau serverul web.
Nextcloud 34.0.2 și versiunile ulterioare oferă și un KeyValueCachebackend inclus pentru magazinele compatibile cu Redis. Nu necesită extensia PHP Redis. Acest lucru poate fi util atunci când un mediu de găzduire nu poate instala module PHP, dar necesită în continuare un serviciu Redis sau Valkey care rulează. Ghidul actual de memorare în cache a memoriei Nextcloud documentează ambele abordări. Alegeți o configurație backend de mai jos, în loc să le adăugați pe amândouă.
Pasul 3: Configurați blocarea în Nextcloud
Editați fișierul activ config/config.phpși adăugați intrările selectate în $CONFIGmatricea existentă. Păstrați sintaxa și virgulele PHP. Nu creați o a doua matrice de configurare și nu duplicați cheile. Păstrați setările de cache existente, cu excepția cazului în care înțelegeți de ce trebuie să se modifice.
Opțiunea A: Redis cu extensia PHP Redis
Folosește această opțiune atunci când runtime-ul web PHP are phpredisinstalată extensia acceptată. Un server Redis local care ascultă pe portul 6379 poate utiliza o configurație de genul acesta:
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
'timeout' => 0.0,
],
Dacă Redis necesită autentificare, configurați parola corectă config.phpși securizați permisiunile fișierului. Nu expuneți Redis public. Păstrați-l legat de localhost sau de o rețea privată protejată și utilizați un socket Unix acolo unde este cazul.
Opțiunea B: KeyValueCache cu Redis sau Valkey
Folosește această opțiune atunci când versiunea ta de Nextcloud este compatibilă cu furnizorul inclus și preferi să nu instalezi o extensie PHP Redis. Pentru un serviciu local care ascultă pe portul 6379, exemplul minimal este:
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
'server' => [
'host' => '127.0.0.1',
'port' => 6379,
],
],
Adăugați setările documentate de autentificare, TLS, socket, Sentinel sau cluster dacă serviciul dvs. le utilizează. Nu copiați acreditările dintr-un exemplu. Pentru parametri detaliați și topologii acceptate, utilizați referința oficială de configurare a memoriei cache .
Pasul 4: Verificați conectivitatea și setările pentru mai multe servere
Nextcloud trebuie să poată accesa serverul cache configurat utilizând aceeași gazdă, port, socket și acreditări ca și serviciul. O greșeală frecventă este setarea localhostfiecărui nod web Nextcloud în timp ce Redis rulează pe o singură gazdă separată. Într-o implementare cu mai multe servere, configurați toate nodurile web să utilizeze același server sau cluster Redis. Restricționați accesul la rețea la nodurile Nextcloud și protejați Redis cu reguli de autentificare și firewall adecvate.
Pentru un socket Unix, confirmați că respectivul cont PHP/server web poate citi și scrie pe socket. Modificările de permisiuni sau de grup diferă în funcție de sistemul de operare, așadar urmați documentația Redis/Valkey și a distribuției, în loc să aplicați permisiuni largi, cum ar fi accesul cu drept de scriere la nivel global. Un refuz de conexiune, o eroare de autentificare sau o eroare de permisiune a socketului pot împiedica Nextcloud să utilizeze furnizorul de blocare, chiar și atunci când cheia de configurare este prezentă.
Pasul 5: Reporniți serviciile corecte
După salvarea configurației, reporniți serviciul Redis dacă setările acestuia s-au modificat, apoi reporniți runtime-ul PHP care deservește Nextcloud. De exemplu, o instalare Apache poate necesita o repornire a Apache, în timp ce o instalare PHP-FPM necesită repornirea serviciului PHP-FPM corespunzător. Numele serviciilor includ numerele de versiune PHP pe unele distribuții. În cazul containerelor, recreați sau reporniți serviciul relevant prin metoda acceptată de implementare. Evitați repornirea orbește a serviciilor fără legătură pe un server de producție.
Dacă Nextcloud returnează o eroare de configurare sau de sintaxă, restaurați copia de rezervă și verificați dacă lipsește o virgulă, o citată nepotrivită, o cheie duplicată sau editați la valoarea greșită config.php. Setările matricei PHP trebuie să rămână în structura de configurare existentă.
Pasul 6: Verificați configurația și testați operațiunile fișierului
Reîmprospătați prezentarea generală a administratorului și verificați dacă avertismentul privind blocarea fișierelor tranzacționale a dispărut. Dacă ați configurat o memorie cache locală și vedeți în continuare un avertisment privind memoria cache, verificați-l separat; Nextcloud recomandă APCu pentru memorarea în cache locală pe multe implementări cu un singur server, în timp ce Redis se ocupă de blocare și memorarea în cache distribuită. Nu adăugați Redis ca memorie cache locală în mod implicit, mai ales într-o configurație cu mai multe servere.
De asemenea, puteți verifica setarea efectivă de blocare cu instrumentul din linia de comandă Nextcloud. Rulați occdin directorul Nextcloud ca cont de server web; pe Debian/Ubuntu, acel cont este de obicei www-data:
sudo -u www-data php occ config:system:get memcache.locking
Valoarea ar trebui să corespundă cu backend-ul ales, cum ar fi \OC\Memcache\Redissau \OC\Memcache\KeyValueCache. Dacă comanda nu găsește setarea, verificați calea, utilizatorul de execuție și fișierul de configurare activ. Ghidul oficial OCC explică cum se execută comenzi administrative.
În final, încărcați un mic fișier de test, redenumiți-l, descărcați-l și confirmați că un client desktop sau mobil poate sincroniza o modificare. Aceste verificări nu simulează fiecare sarcină de lucru concurentă, dar confirmă că operațiunile obișnuite cu fișierele funcționează în continuare după modificare. Pentru un server ocupat sau în cluster, monitorizați jurnalul Nextcloud și disponibilitatea Redis/Valkey în timpul utilizării normale. Dacă avertismentul persistă, verificați dacă runtime-ul web PHP are extensia atunci când utilizați Opțiunea A, dacă gazda cache este accesibilă, dacă acreditările și permisiunile socket sunt corecte și dacă toate nodurile partajează același backend.
Ce face și ce nu face blocarea fișierelor tranzacționale
Blocarea tranzacțiilor ajută la prevenirea coruperii fișierelor atunci când operațiunile se suprapun, gestionează tranzacțiile întrerupte și coordonează modificările care implică fișiere partajate și stocare externă. Nu rezervă un document astfel încât o singură persoană să îl poată edita, nu afișează cine mai editează sau nu îmbină editările simultane. Tratați avertismentul ca pe o problemă de configurare a serverului, apoi testați încărcările normale și sincronizarea după configurarea backend-ului. Pentru un comportament de editare colaborativă, utilizați o aplicație concepută pentru co-elaborare, mai degrabă decât să vă bazați pe blocări de fișiere.