Configurați cache-ul Redis Nextcloud pe Ubuntu 24.04

Nextcloud 34.0.2 a introdus un backend compatibil cu Redis KeyValueCache, astfel încât Nextcloud actual poate utiliza Redis fără a instala extensia Redis a PHP. Pe un singur server Ubuntu 24.04, utilizați APCu pentru memoria cache locală rapidă și Redis pentru memoria cache distribuită și blocarea fișierelor tranzacționale, conectat printr-un socket Unix. Acest lucru menține Redis în afara rețelei și oferă Nextcloud o memorie cache partajată care funcționează pentru toate cererile PHP.

Alege mai întâi backend-ul Redis potrivit

Manualul de administrare actual al Nextcloud 35 documentează două căi Redis. Pentru Nextcloud 34.0.2 sau o versiune ulterioară, se recomandă KeyValueCacheutilizarea Predis la pachet cu Nextcloud; instalați serverul Redis și setați memcache.kvstore, dar nu este nevoie de php-redis. Versiunile mai vechi de Nextcloud utilizează extensia PhpRedis și un config.phpbloc diferit. Verificați versiunea cu sudo -u www-data php /var/www/nextcloud/occ status, înlocuind calea dacă instalarea se află în altă parte.

Acest ghid presupune că Nextcloud și Redis rulează pe aceeași gazdă Ubuntu, serverul web rulează ca www-data, și că gestionați PHP și Redis direct. Dacă ați instalat Nextcloud prin Snap, AIO, Docker sau alt dispozitiv, urmați convențiile de servicii și sistem de fișiere ale pachetului respectiv în loc să aplicați comenzi la nivel de gazdă orbește. APCu este mai rapid pentru cache-ul local decât Redis, în timp ce Redis este potrivit pentru cache-ul distribuit și blocările de fișiere. Consultați documentația privind cache-ul memoriei Nextcloud .

Instalați Redis și APCu

Actualizați indexul pachetelor Ubuntu, instalați serverul Redis și modulul PHP APCu și activați Redis la pornire:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Terminalul Ubuntu afișează actualizarea apt și instalarea redis-server și php-apcu.
Instalați serverul Redis și pachetele APCu înainte de a edita oricare dintre fișierele de configurare.

Pe Ubuntu 24.04, linia PHP implicită este 8.3 și php-apcueste numele pachetului de distribuție. Redis este un serviciu separat; APCu este încărcat de PHP. Reporniți handlerul PHP după instalarea APCu, astfel încât procesul PHP orientat spre web să încarce modulul. Dacă utilizați PHP-FPM, acesta este de obicei php8.3-fpm; dacă Apache utilizează mod_php, reporniți apache2. Verificați numele serviciilor active înainte de a reporni.

Faceți Redis local pe server

Pentru această configurație cu o singură gazdă, utilizați un socket Unix și dezactivați listener-ul TCP al Redis. Editați /etc/redis/redis.conf. Actualizați directivele active existente în loc să lăsați mai multe copii conflictuale, apoi setați:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
Editorul de configurare Redis afișează TCP dezactivat și o cale de socket Unix cu modul 770.
Folosește aceeași cale de socket în Redis și Nextcloud și restricționează accesul la grupul Redis.

port 0dezactivează portul TCP; Redis ascultă în schimb prin calea socketului. Modul de permisiune 770permite proprietarului și grupului Redis să acceseze socketul, în timp ce refuză accesul altor utilizatori locali. Adăugați contul serverului web la grupul Redis:

sudo usermod -aG redis www-data
sudo systemctl restart redis-server

Reporniți serviciul PHP-FPM sau Apache după modificarea calității de membru al grupului, deoarece procesele care rulează își păstrează vechea listă de grupuri. Folosiți serviciul care rulează efectiv PHP-ul Nextcloud. Documentația Redis recomandă restricționarea accesului la clienții de încredere; un socket local evită expunerea unui port cache pe o interfață orientată spre internet. Consultați îndrumările de securitate Redis .

Indicați Nextcloud către socket

Faceți o copie de rezervă a fișierului config/config.php, apoi adăugați aceste intrări în matricea de configurare PHP existentă. Nu înlocuiți restul fișierului. Folosiți calea în care se află instalarea 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',
    ],
],
Editorul Nextcloud config.php care afișează memoria cache locală APCu și intrările KeyValueCache folosind socketul Redis.
Păstrați APCu local și setați atât backend-ul cache Redis, cât și gazda socket în config.php.

Bara oblică inițială din calea gazdei indică funcției KeyValueCache din Nextcloud să utilizeze un socket Unix, deci nu este necesară nicio setare de port sau protocol TCP. Redis furnizează ambele memcache.distributedși memcache.locking; cea din urmă mută blocările fișierelor tranzacționale departe de baza de date. Păstrați pe APCu pentru acces la memoria cache locală cu latență mai mică. Intrările exacte și opțiunile de socket se află în instrucțiunile KeyValueCache și socket Unixmemcache.local din Nextcloud și în ghidul său de blocare a fișierelor tranzacționale .

Verificați conexiunea și depanați permisiunile

Mai întâi confirmați că serviciul Redis este activ și că socket-ul răspunde:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Terminal Ubuntu care rulează redis-cli pe socketul Redis Nextcloud și afișează PONG.
Un răspuns PONG confirmă că Redis acceptă o conexiune locală prin socket-ul configurat.

Răspunsul așteptat la a doua comandă este PONG. Apoi, conectați-vă la Nextcloud și deschideți prezentarea generală a setărilor de administrare. Confirmați că avertismentul privind memoria cache locală a dispărut și verificați jurnalul Nextcloud dacă persistă un avertisment Redis sau memoria cache. De asemenea, puteți rula comanda sudo -u www-data php /var/www/nextcloud/occ statuspentru a confirma că instanța încă se încarcă; această comandă verifică disponibilitatea Nextcloud, nu memoria cache în sine.

Dacă Redis raportează „Permisiune refuzată” sau Nextcloud nu se poate conecta, verificați dacă socketul există, dacă www-dataaparține grupului redisși dacă grupul și modul socketului permit accesul. Reporniți Redis și handlerul PHP după modificarea apartenenței la grup. Dacă Redis nu poate crea socketul, verificați dacă există o greșeală de scriere în calea configurată și inspectați sudo journalctl -u redis-server -n 50. Nu rezolvați o problemă de permisiuni pentru socket deschizând Redis la rețeaua publică.

Nextcloud mai vechi: folosește în schimb PhpRedis

Dacă versiunea Nextcloud este mai veche decât 34.0.2, instalați extensia PHP Redis care corespunde versiunii PHP care deservește Nextcloud. Pe o instalare standard Ubuntu 24.04 PHP 8.3, pachetul este php-redis; Ubuntu îl listează ca extensie PHP 8.3 Redis. Reporniți handlerul PHP activ după instalare. În config.php, utilizați clasele Redis și blocul de conexiune vechi în loc de intrările KeyValueCache de mai sus:

'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 de pachete Noble php-redis din Ubuntu confirmă maparea pachetelor. Nu configurați ambele backend-uri simultan. După salvarea configurației corespunzătoare, repetați verificarea ping-ului socket-ului și a prezentării generale a administratorului Nextcloud.

Lasă un comentariu

Setați URL-ul public al Nextcloud astfel încât să se poată accesa singur

Remediați avertismentul privind lipsa adresei de ieșire din Nextcloud prin setarea adresei URL canonice și verificarea DNS, HTTPS și a rutării reverse-proxy de pe server.

Configurați cache-ul Redis Nextcloud pe Ubuntu 24.04

Configurați cache-ul Redis Nextcloud pe Ubuntu 24.04

Configurați APCu și Redis printr-un socket Unix local pentru cache-ul Nextcloud și blocarea fișierelor, cu pași pentru versiunile actuale și mai vechi de Nextcloud.

Rulează automat Nextcloud Cron cu un temporizator Systemd

Verificați modul cron al Nextcloud, reparați serviciul systemd și cronometrul și verificați dacă joburile de fundal rulează după pornire și la fiecare cinci minute.

Ștergeți avertismentul de blocare a fișierelor din Nextcloud cu Redis

Activează blocarea fiabilă a fișierelor Nextcloud, alege backend-ul Redis sau Valkey potrivit și verifică dacă avertismentul dispare fără a risca modificări simultane ale fișierelor.

Ce este necesar pentru a viza un rating de securitate Nextcloud de A+

Ce este necesar pentru a viza un rating de securitate Nextcloud de A+

Corectează rezultatele comune ale scanărilor Nextcloud cu actualizări actuale, HTTPS și HSTS, încredere precisă în reverse-proxy și verificări pe serverul public.

Activați criptarea pe server Nextcloud cu impact măsurat

Configurați Nextcloud SSE pentru stocarea care necesită acest lucru, protejați cheile de criptare și măsurați impactul asupra transferului și procesorului înainte de a cripta fișierele existente.

Adăugați căutarea full-text Elasticsearch în Nextcloud

Conectează căutarea de fișiere Nextcloud la Elasticsearch, indexează conținutul documentelor și alege o configurație care se potrivește nevoilor serverului și securității tale.

Setați o politică de expirare fiabilă pentru fișierele șterse din Nextcloud

Setați o politică de expirare fiabilă pentru fișierele șterse din Nextcloud

Configurați Nextcloud pentru a elimina fișierele șterse după o perioadă de retenție definită, pentru a programa în mod fiabil joburile în fundal și pentru a evita comenzile care golesc coșul de gunoi al fiecărui utilizator.

Ștergeți avertismentul privind indexurile lipsă ale bazei de date din Nextcloud

Ștergeți avertismentul privind indexurile lipsă ale bazei de date din Nextcloud

Rulați repararea OCC din Nextcloud în siguranță, previzualizați modificările bazei de date și verificați de ce avertismentul ar putea persista.

Creșteți limita de încărcare web a Nextcloud peste 2 GB

Creșteți limita de încărcare web a Nextcloud peste 2 GB

Permiteți încărcări mai mari în browserul Nextcloud prin alinierea setărilor PHP, Nginx sau Apache, stocarea temporară și timeout - și verificați ce limită blochează fișierul.