Il manuale di amministrazione di Nextcloud attualmente disponibile documenta ancora l'estensione PhpRedis per la memorizzazione nella cache Redis e il blocco transazionale dei file. Documenta anche un backend più recente, KeyValueCache, senza estensione, aggiunto in Nextcloud 34.0.2. Questa guida utilizza la configurazione PhpRedis consolidata perché Ubuntu 24.04 fornisce il pacchetto di estensione Redis per PHP 8.3. Il backend più recente è un'opzione disponibile se la versione di Nextcloud in uso lo supporta, ma le sue chiavi di configurazione sono diverse; non confondere i due esempi.
Il risultato sarà un servizio Redis locale disponibile solo sull'host Nextcloud, con cache distribuita e blocco dei file basati su Redis e APCu per una cache locale più veloce. Questa è una configurazione comune per server singoli. Se i server web e PHP sono distribuiti su host diversi, utilizzare un endpoint Redis condiviso con controlli di rete appropriati anziché le impostazioni localhost descritte di seguito.
Quali modifiche apporta Redis a un'installazione di Nextcloud?
Redis offre a Nextcloud un servizio chiave-valore per le voci di cache distribuite e i blocchi transazionali dei file. Questi blocchi aiutano a prevenire operazioni in conflitto quando più richieste accedono agli stessi file. Redis non sostituisce il database, l'archiviazione dei file, PHP OPcache o il piano di backup di Nextcloud. Su un singolo server, APCu è generalmente più veloce per la memorizzazione nella cache locale in-process, mentre Redis gestisce la cache e i blocchi condivisi. Nextcloud avverte inoltre che l'utilizzo di Redis come cache locale non è consigliato, soprattutto in presenza di più server web.
Il manuale più recente di Nextcloud identifica Redis come backend supportato e specifica PhpRedis 2.2.6 o versioni successive per il metodo basato su estensioni. L'archivio dei pacchetti di Ubuntu 24.04 include php8.3-redise redis-server. Le revisioni dei pacchetti possono cambiare con la pubblicazione degli aggiornamenti di Ubuntu, quindi installa dai repository di Ubuntu configurati anziché bloccare una versione copiata da una guida precedente. Riferimenti controllati il 6 ottobre 2026: documentazione sulla cache di memoria di Nextcloud , elenco dei pacchetti PhpRedis di Ubuntu 24.04 e elenco dei pacchetti del server Redis di Ubuntu 24.04 .
Prima di iniziare
- Conferma la directory di installazione di Nextcloud e il runtime PHP utilizzato dal sito web. I comandi seguenti presuppongono un'installazione standard del pacchetto Ubuntu con PHP 8.3, Apache o PHP-FPM e l'account del servizio web
www-data.
- Esegui un backup
config/config.phpe prendi nota di come ripristinarlo. Il percorso esatto varia: ad esempio, l'installazione di un pacchetto potrebbe utilizzare /var/www/nextcloud/config/config.php, mentre un'installazione manuale potrebbe trovarsi altrove.
- Se il server gestisce caricamenti di file attivi, è necessario utilizzare una finestra di manutenzione. Il riavvio di Apache o PHP-FPM interrompe brevemente le richieste web.
1. Installa Redis, PhpRedis e APCu
Aggiorna i metadati del pacchetto e installa il demone e le estensioni PHP:
sudo apt update
sudo apt install redis-server php-redis php-apcu
Il pacchetto di Ubuntu php-redisseleziona l'estensione per la versione di PHP installata. Se gestisci più versioni di PHP o utilizzi un repository PHP di terze parti, verifica che l'estensione sia installata per la versione esatta di PHP in uso su Nextcloud. Un modulo abilitato solo per l'ambiente di runtime PHP da riga di comando non garantisce che Apache o PHP-FPM possano caricarlo.
Abilita Redis all'avvio del sistema e avvialo ora, quindi verifica lo stato del servizio:
sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping
Una risposta Redis locale sana all'ultimo comando è PONG. Se il servizio è inattivo, controlla sudo journalctl -u redis-server -n 50 --no-pagerprima di modificare la configurazione di Nextcloud.
2. Mantieni il listener Redis locale
Per un'installazione su un singolo host, Redis non ha bisogno di essere in ascolto su un'interfaccia pubblica. La configurazione predefinita di Ubuntu è normalmente progettata per l'accesso locale e la modalità protetta; si consiglia di verificarla /etc/redis/redis.confprima di modificarla.
sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf
Mantieni Redis associato all'interfaccia di loopback (comunemente 127.0.0.1e ::1) e lascia la modalità protetta abilitata. Non esporre la porta 6379a Internet né associarla a 0.0.0.0per questa configurazione locale. Dopo qualsiasi modifica alla configurazione di Redis, riavvia il servizio e ripeti redis-cli ping.
Questa guida utilizza TCP su localhost per ridurre al minimo le modifiche ai permessi del socket. Un socket Unix è un'altra opzione locale supportata e può ridurre l'overhead di connessione, ma il percorso del socket Redis, la proprietà del gruppo, i permessi e la configurazione di Nextcloud devono corrispondere. Segui l'esempio di socket presente nel manuale di Nextcloud se scegli deliberatamente questa strada.
3. Conferma che PHP può caricare entrambe le estensioni
Verifica i moduli PHP da riga di comando:
php -m | grep -Ei '^(apcu|redis)$'
Dovresti vedere entrambi i nomi. Se uno dei due manca, controlla i file dei moduli abilitati php --inie installa il pacchetto corrispondente per la tua versione di PHP. Riavvia il gestore PHP utilizzato dal sito web in modo che i suoi worker carichino i nuovi moduli. Per Apache con mod_php, esegui sudo systemctl restart apache2. Per un'installazione PHP-FPM che utilizza PHP 8.3, esegui sudo systemctl restart php8.3-fpm; riavvia o ricarica il server web a seconda delle esigenze della tua distribuzione.
Il controllo tramite CLI è un primo segnale utile, ma non una prova completa del runtime web. Successivamente, utilizza le impostazioni di amministrazione di Nextcloud e la relativa visualizzazione delle informazioni sul server o sulle informazioni PHP per verificare che il processo web riconosca i moduli della cache.
4. Aggiungi le impostazioni della cache a Nextcloud
Apri il file esistente config/config.phpcon un editor. Esegui prima un backup del file e unisci queste voci all'array PHP esistente prima di chiuderlo );. Non sostituire l'intero file né aggiungere una seconda copia di chiavi già presenti.
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '127.0.0.1',
'port' => 6379,
],
L'indirizzo di loopback esplicito corrisponde al servizio Redis locale. Se invece si utilizza un socket Unix, utilizzare il percorso del socket come host Redis e configurare il demone e le autorizzazioni di conseguenza. Se Redis richiede l'autenticazione, aggiungere il nome utente e la password ACL di Redis corretti all'array redise configurare Redis di conseguenza; non incollare mai una password reale in un esempio condiviso o in un post di supporto pubblico.
Mantieni invariate le impostazioni esistenti, come instanceidle credenziali del database, i domini attendibili e la directory dei dati. La sintassi degli array PHP è importante: mantieni le virgole tra le voci e assicurati che ogni impostazione appaia una sola volta.
5. Convalidare la cache e il blocco dei file
Eseguire il controllo dello stato da riga di comando di Nextcloud dalla directory di installazione come utente del servizio web. Sostituire il percorso di esempio se l'installazione si trova in un'altra posizione:
cd /var/www/nextcloud
sudo -u www-data php occ status
Controlla l'interfaccia web nelle impostazioni di amministrazione per eventuali avvisi di configurazione e verifica che i moduli Redis e APCu siano visibili al runtime PHP web. Quindi, testa le normali operazioni sui file con un file piccolo e non critico: caricalo, rinominalo, scaricalo ed eliminalo. La pagina di amministrazione non dovrebbe più segnalare l'assenza di una cache di memoria quando la cache locale è configurata correttamente.
Un test riuscito PONGdimostra solo che Redis risponde al client CLI locale. Il controllo amministrativo di Nextcloud e le operazioni di routine sui file aiutano a verificare contemporaneamente l'estensione PHP, i permessi del server web, le impostazioni di connessione a Redis e la configurazione dell'applicazione. Non considerare un caricamento più rapido della pagina durante un test come prova di un miglioramento misurabile delle prestazioni; il carico di lavoro, lo spazio di archiviazione, il database e la capacità dei worker PHP influiscono tutti sul tempo di risposta.
Risoluzione dei problemi comuni
La pagina di amministrazione continua a segnalare l'assenza di cache in memoria.
Verifica la presenza di chiavi di cache duplicate o con errori di battitura, conferma che memcache.localpuntino ad APCu e riavvia il servizio Apache o PHP-FPM corretto. Un'installazione PHP solo da riga di comando potrebbe essere diversa dal runtime PHP utilizzato dal sito web.
Redis è in esecuzione, ma Nextcloud segnala errori di connessione.
Confronta hoste portcon config.phpil listener in /etc/redis/redis.conf. Conferma l'accesso locale con redis-cli -h 127.0.0.1 -p 6379 pinge rivedi i log di Redis e del server web. Se utilizzi un socket o una password, verifica che il percorso o le credenziali corrispondano su entrambi i lati.
Le operazioni sui file non riescono dopo la modifica
Se l'istanza diventa inutilizzabile, ripristinate temporaneamente il backup config.php, quindi esaminate i log di PHP e del server web. Verificate la punteggiatura degli array, confermate che il servizio Redis sia attivo e assicuratevi che nessun firewall o ACL Redis personalizzato blocchi il processo web. Evitate di cancellare i dati di Redis come primo passaggio per la risoluzione dei problemi; esaminate la connessione e la configurazione prima di rimuovere le voci della cache o di blocco.
Cosa non copre questa configurazione
Questa è una configurazione a server singolo, non un'architettura Redis ad alta disponibilità. Non configura la replica di Redis, Sentinel, TLS, un host di cache remoto, l'archiviazione delle sessioni o una distribuzione Nextcloud in cluster. I nodi Nextcloud multi-server devono condividere la stessa cache distribuita e lo stesso backend di blocco; l'utilizzo di localhost su ciascun nodo creerebbe istanze Redis separate, vanificando tale requisito. Per una topologia remota o in cluster, seguire la sezione di configurazione di Nextcloud corrispondente e proteggere le comunicazioni Redis per tale ambiente.
Una volta stabilizzata la configurazione, monitora l'utilizzo della memoria di Redis e la panoramica di amministrazione di Nextcloud. Assegna memoria sufficiente per la cache e le attività di blocco, evita policy di eliminazione non verificate che potrebbero eliminare i dati di blocco e mantieni backup regolari del database e dei file. La cache di Redis può ridurre il sovraccarico dovuto alla cache e ai blocchi, ma è solo una parte di un'installazione Nextcloud efficiente, non un sostituto della pianificazione della capacità.