Configurare la cache Redis di Nextcloud su Ubuntu 24.04

Nextcloud 34.0.2 ha introdotto un backend compatibile con Redis KeyValueCache, consentendo quindi alle versioni attuali di Nextcloud di utilizzare Redis senza dover installare l'estensione Redis di PHP. Su un singolo server Ubuntu 24.04, è possibile utilizzare APCu per una cache locale veloce e Redis per la cache distribuita e il blocco transazionale dei file, connettendosi tramite un socket Unix. In questo modo, Redis non accede alla rete e Nextcloud dispone di una cache condivisa che funziona per tutte le richieste PHP.

Scegli prima il backend Redis giusto

Il manuale di amministrazione di Nextcloud 35 documenta due percorsi per Redis. Per Nextcloud 34.0.2 o versioni successive, il percorso consigliato KeyValueCacheutilizza Predis incluso in Nextcloud; è necessario installare il server Redis e impostare memcache.kvstore, ma non è necessario php-redis. Le versioni precedenti di Nextcloud utilizzano l'estensione PhpRedis e un config.phpblocco diverso. Verifica la tua versione con sudo -u www-data php /var/www/nextcloud/occ status, sostituendo il percorso se l'installazione si trova altrove.

Questa guida presuppone che Nextcloud e Redis siano in esecuzione sullo stesso host Ubuntu, che il server web sia in esecuzione come www-datae che tu gestisca PHP e Redis direttamente. Se hai installato Nextcloud tramite Snap, AIO, Docker o un'altra appliance, segui le convenzioni di servizio e filesystem di quel pacchetto anziché applicare ciecamente i comandi a livello di host. APCu è più veloce di Redis per la cache locale, mentre Redis è adatto per la cache distribuita e i blocchi di file. Consulta la documentazione sulla cache di memoria di Nextcloud .

Installare Redis e APCu

Aggiorna l'indice dei pacchetti di Ubuntu, installa il server Redis e il modulo PHP APCu e abilita Redis all'avvio:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Terminale Ubuntu che mostra l'aggiornamento apt e l'installazione di redis-server e php-apcu.
Installa il server Redis e i pacchetti APCu prima di modificare uno qualsiasi dei file di configurazione.

Su Ubuntu 24.04, la riga PHP predefinita è 8.3 e php-apcucorrisponde al nome del pacchetto di distribuzione. Redis è un servizio separato; APCu viene caricato da PHP. Riavvia il gestore PHP dopo aver installato APCu in modo che il processo PHP lato web carichi il modulo. Se utilizzi PHP-FPM, in genere il comando è php8.3-fpm; se Apache utilizza mod_php, riavvia apache2. Verifica i nomi dei servizi attivi prima di riavviare.

Rendere Redis locale al server

Per questa configurazione a host singolo, utilizzare un socket Unix e disattivare il listener TCP di Redis. Modificare /etc/redis/redis.conf. Aggiornare le direttive attive esistenti anziché lasciare più copie in conflitto, quindi impostare:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
L'editor di configurazione di Redis mostra TCP disabilitato e un percorso socket Unix con permessi 770.
Utilizza lo stesso percorso socket in Redis e Nextcloud e limita l'accesso al gruppo Redis.

port 0Disabilita la porta TCP; Redis si mette in ascolto tramite il percorso socket. La modalità di autorizzazione 770consente al proprietario e al gruppo Redis di accedere al socket, negando l'accesso agli altri utenti locali. Aggiungi l'account del server web al gruppo Redis:

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

Dopo aver modificato l'appartenenza ai gruppi, riavvia il servizio PHP-FPM o Apache, poiché i processi in esecuzione mantengono il vecchio elenco dei gruppi. Utilizza il servizio che effettivamente esegue il PHP di Nextcloud. La documentazione di Redis raccomanda di limitare l'accesso ai client attendibili; un socket locale evita di esporre una porta di cache su un'interfaccia rivolta verso Internet. Consulta le linee guida sulla sicurezza di Redis .

Punta Nextcloud al socket

Esegui un backup config/config.php, quindi aggiungi queste voci all'interno dell'array di configurazione PHP esistente. Non sostituire il resto del file. Utilizza il percorso in cui si trova l'installazione di 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',
    ],
],
L'editor config.php di Nextcloud mostra le voci della cache locale APCu e KeyValueCache che utilizzano il socket Redis.
Mantieni APCu in locale e imposta sia il backend della cache Redis che l'host del socket nel file config.php.

La barra iniziale nel percorso host indica a KeyValueCache di Nextcloud di utilizzare un socket Unix, quindi non è necessario impostare la porta TCP o il protocollo. Redis fornisce entrambi memcache.distributed; memcache.lockingquest'ultimo sposta i blocchi transazionali dei file dal database. Mantieni memcache.localsu APCu per un accesso alla cache locale a bassa latenza. Le voci esatte e le opzioni del socket sono disponibili nelle istruzioni di Nextcloud per KeyValueCache e socket Unix e nella sua guida al blocco transazionale dei file .

Verifica la connessione e risolvi i problemi relativi alle autorizzazioni.

Innanzitutto, verifica che il servizio Redis sia attivo e che il socket risponda:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Terminale Ubuntu in esecuzione con redis-cli connesso al socket Redis di Nextcloud che mostra PONG.
Una risposta PONG conferma che Redis accetta una connessione locale tramite il socket configurato.

La risposta prevista al secondo comando è PONG. Quindi accedi a Nextcloud e apri la panoramica delle impostazioni di amministrazione. Verifica che l'avviso relativo alla cache locale sia scomparso e controlla il log di Nextcloud per verificare se rimane un avviso relativo a Redis o alla cache. Puoi anche eseguire sudo -u www-data php /var/www/nextcloud/occ statusper confermare che l'istanza si carichi ancora; questo comando controlla la disponibilità di Nextcloud, non la cache di per sé.

Se Redis segnala "Permesso negato" o Nextcloud non riesce a connettersi, verifica che il socket esista, che www-dataappartenga al redisgruppo e che il gruppo e la modalità del socket consentano l'accesso. Riavvia Redis e il gestore PHP dopo aver modificato l'appartenenza al gruppo. Se Redis non riesce a creare il socket, verifica la presenza di errori di battitura nel percorso configurato e ispeziona il file di configurazione sudo journalctl -u redis-server -n 50. Non risolvere un problema di permessi del socket aprendo Redis alla rete pubblica.

Versioni precedenti di Nextcloud: utilizzare PhpRedis al posto di

Se la tua versione di Nextcloud è precedente alla 34.0.2, installa l'estensione PHP Redis corrispondente alla versione di PHP che serve Nextcloud. Su una configurazione standard di Ubuntu 24.04 con PHP 8.3, il pacchetto è php-redis; Ubuntu lo elenca come l'estensione PHP 8.3 Redis. Riavvia il gestore PHP attivo dopo l'installazione. In config.php, usa le classi Redis legacy e il blocco di connessione invece delle voci KeyValueCache sopra:

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '/run/redis/redis-server.sock',
    'port' => 0,
],

L'elenco dei pacchetti php-redis di Noble su Ubuntu conferma la mappatura dei pacchetti. Non configurare entrambi i backend contemporaneamente. Dopo aver salvato la configurazione corrispondente, ripetere il ping del socket e il controllo della panoramica amministrativa di Nextcloud.

Lascia un commento

Imposta l'URL pubblico di Nextcloud in modo che possa raggiungere se stesso.

Risolvi l'avviso di Nextcloud relativo all'indirizzo in uscita mancante impostando l'URL canonico e verificando il routing DNS, HTTPS e del proxy inverso dal server stesso.

Configurare la cache Redis di Nextcloud su Ubuntu 24.04

Configurare la cache Redis di Nextcloud su Ubuntu 24.04

Configurare APCu e Redis tramite un socket Unix locale per la memorizzazione nella cache e il blocco dei file in Nextcloud, con istruzioni per le versioni attuali e precedenti di Nextcloud.

Attivare l'esecuzione automatica di Nextcloud Cron con un timer Systemd

Controlla la modalità cron di Nextcloud, ripara il servizio systemd e il timer e verifica che i processi in background vengano eseguiti dopo l'avvio e ogni cinque minuti.

Rimuovi l'avviso di blocco dei file di Nextcloud con Redis

Abilita il blocco affidabile dei file in Nextcloud, scegli il backend Redis o Valkey più adatto e verifica che l'avviso scompaia senza rischiare modifiche simultanee ai file.

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Cosa serve per ottenere una valutazione di sicurezza A+ da Nextcloud

Risolvi i problemi più comuni riscontrati durante le scansioni di Nextcloud con gli aggiornamenti più recenti, HTTPS e HSTS, una configurazione precisa del proxy inverso e verifiche rispetto al server pubblico.

Abilita la crittografia lato server di Nextcloud con un impatto misurabile

Configura Nextcloud SSE per lo spazio di archiviazione che lo richiede, proteggi le chiavi di crittografia e misura l'impatto sul trasferimento dati e sulla CPU prima di crittografare i file esistenti.

Aggiungi la ricerca full-text di Elasticsearch a Nextcloud

Collega la ricerca file di Nextcloud a Elasticsearch, indicizza il contenuto dei documenti e scegli una configurazione adatta alle esigenze del tuo server e della tua sicurezza.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Imposta una politica di scadenza affidabile per i file eliminati da Nextcloud.

Configura Nextcloud per rimuovere i file eliminati dopo un periodo di conservazione definito, pianifica in modo affidabile le attività in background ed evita i comandi che svuotano il cestino di tutti gli utenti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Risolvi l'avviso di Nextcloud relativo agli indici del database mancanti.

Esegui in modo sicuro la riparazione OCC di Nextcloud, visualizza in anteprima le modifiche al database e verifica il motivo per cui l'avviso potrebbe persistere.

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Aumentare il limite di caricamento web di Nextcloud oltre i 2 GB

Consenti il ​​caricamento di file di dimensioni maggiori nel browser Nextcloud allineando le impostazioni di PHP, Nginx o Apache, dello spazio di archiviazione temporaneo e del timeout, e verifica quale limite sta bloccando il file.