Risolvere il problema "Il blocco dei file transazionali non è configurato" in Nextcloud.

Se Nextcloud visualizza un avviso che indica che il blocco transazionale dei file non è configurato o è disabilitato, le operazioni sui file potrebbero essere meno protette contro scritture simultanee e trasferimenti interrotti. La soluzione più comune è configurare un archivio chiave-valore supportato, come Redis o Valkey, per il blocco. Innanzitutto, identifica la modalità di installazione di Nextcloud, quindi configura il servizio di cache e Nextcloud insieme; l'installazione del solo Redis non risolve l'avviso.

Il manuale di amministrazione di Nextcloud attualmente in vigore afferma che il blocco transazionale utilizza il database per impostazione predefinita. Il backend del database può funzionare, ma aumenta il carico sul database stesso. Redis o Valkey possono fornire un backend di blocco dedicato. Il testo esatto dell'avviso varia a seconda della versione di Nextcloud: la documentazione attuale riporta "Il blocco transazionale dei file è disabilitato, ciò potrebbe causare problemi di race condition". Un avviso separato relativo alla cache di memoria non indica lo stesso problema. Consultare la guida ufficiale sul blocco transazionale dei file e il riferimento agli avvisi nella pagina di amministrazione .

Prima di cambiare server

Questi passaggi presuppongono che tu amministri l'host Nextcloud. I comandi seguenti utilizzano Debian o Ubuntu con un'installazione di pacchetti convenzionale; i nomi dei pacchetti, i nomi dei servizi, le versioni di PHP e i percorsi di configurazione variano su altre distribuzioni Linux. Se utilizzi Nextcloud AIO, Docker, Snap, TrueNAS o un'immagine del provider di hosting, segui le istruzioni di tale implementazione per l'installazione e il riavvio dei servizi. L'installazione di pacchetti PHP sull'host potrebbe non modificare l'ambiente PHP all'interno di un container o di un'appliance.

  • Trova la directory principale del sito web Nextcloud e il suo percorso attivo config/config.php.
  • Prima di modificare quel file, crea una copia di backup protetta. Potrebbe contenere credenziali di database e altre informazioni riservate.
  • Verifica se Nextcloud utilizza un singolo server web o più server. Una configurazione multi-nodo richiede un server o un cluster Redis/Valkey condiviso, raggiungibile da ogni nodo Nextcloud.
  • Se i vostri utenti dipendono da caricamenti di file ininterrotti, pianificate una breve finestra di manutenzione.

Passaggio 1: Confermare l'avviso e il tipo di installazione

Accedi come amministratore e apri le impostazioni di amministrazione , quindi esamina la panoramica o gli avvisi di sicurezza e configurazione. Annota il messaggio esatto. Se la pagina indica solo che non è configurata alcuna cache di memoria, si tratta di un controllo diverso; configura una cache locale come APCu, se necessario, ma non dare per scontato che fornisca il blocco transazionale. Nextcloud documenta che le impostazioni della cache devono essere abilitate esplicitamente in config.php.

In un'installazione Linux tradizionale, utilizzare la shell per identificare il percorso di distribuzione e ispezionare il file di configurazione senza stampare segreti in un log di terminale condiviso. Ad esempio, dal server:

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

Sostituisci /var/www/nextcloudcon il percorso effettivo. Per i container, identifica il container e la sua configurazione montata anziché modificare un file lato host che l'istanza in esecuzione non utilizza.

Passaggio 2: Installare e avviare un archivio chiave-valore

Per Debian o Ubuntu, il backend Redis tradizionale utilizza in genere il servizio Redis e l'estensione PHP Redis. Installa i pacchetti che corrispondono alla versione di PHP utilizzata dal server web:

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

L'output di stato dovrebbe indicare che il servizio è attivo. Verificare che il runtime PHP che serve Nextcloud possa caricare l'estensione Redis. In un'installazione standard, php -m | grep -i redisè sufficiente un rapido controllo da riga di comando, ma PHP da riga di comando e PHP web possono utilizzare versioni o file di configurazione diversi. Se il modulo non è presente nel runtime web, installare o abilitare il pacchetto corrispondente e riavviare PHP-FPM o il server web.

Nextcloud 34.0.2 e versioni successive offrono anche un KeyValueCachebackend integrato per i sistemi di archiviazione compatibili con Redis. Non richiede l'estensione PHP per Redis. Questo può essere utile quando un ambiente di hosting non può installare moduli PHP, ma richiede comunque un servizio Redis o Valkey in esecuzione. La guida attuale di Nextcloud sulla cache di memoria documenta entrambi gli approcci. Scegli una delle configurazioni di backend riportate di seguito anziché aggiungerle entrambe.

Passaggio 3: Configurare il blocco in Nextcloud

Modifica gli elementi attivi config/config.phpe aggiungi le voci selezionate all'interno $CONFIGdell'array esistente. Mantieni la sintassi PHP e le virgole. Non creare un secondo array di configurazione né duplicare le chiavi. Mantieni le impostazioni della cache esistenti a meno che tu non ne comprenda il motivo della modifica.

Opzione A: Redis con l'estensione PHP Redis

Utilizzare questa opzione quando l'ambiente di runtime PHP web ha l' phpredisestensione supportata installata. Un server Redis locale in ascolto sulla porta 6379 può utilizzare una configurazione simile a questa:

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

Se Redis richiede l'autenticazione, configura la password corretta config.phpe proteggi i permessi del file. Non esporre Redis pubblicamente. Mantienilo connesso a localhost o a una rete privata protetta e utilizza un socket Unix quando necessario.

Opzione B: KeyValueCache con Redis o Valkey

Utilizza questa opzione quando la tua versione di Nextcloud supporta il provider incluso e preferisci non installare un'estensione PHP Redis. Per un servizio locale in ascolto sulla porta 6379, l'esempio minimo è il seguente:

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

Aggiungi le impostazioni di autenticazione, TLS, socket, Sentinel o cluster documentate, se il tuo servizio le utilizza. Non copiare le credenziali da un esempio. Per parametri dettagliati e topologie supportate, consulta la documentazione ufficiale sulla configurazione della cache .

Passaggio 4: Verificare la connettività e le impostazioni multi-server

Nextcloud deve essere in grado di raggiungere il server di cache configurato utilizzando lo stesso host, porta, socket e credenziali del servizio. Un errore comune è quello di configurarlo localhostsu ogni nodo web di Nextcloud mentre Redis è in esecuzione su un solo host separato. In una distribuzione multi-server, configurare tutti i nodi web in modo che utilizzino lo stesso server o cluster Redis. Limitare l'accesso alla rete ai nodi Nextcloud e proteggere Redis con autenticazione e regole firewall appropriate.

Per un socket Unix, verificare che l'account PHP/server web abbia i permessi di lettura e scrittura sul socket. Le modifiche ai permessi o ai gruppi variano a seconda del sistema operativo, quindi è consigliabile seguire la documentazione di Redis/Valkey e della distribuzione anziché applicare permessi generici come l'accesso in scrittura per tutti. Un rifiuto della connessione, un errore di autenticazione o un errore di permesso del socket possono impedire a Nextcloud di utilizzare il provider di blocco anche in presenza della chiave di configurazione.

Passaggio 5: riavviare i servizi corretti

Dopo aver salvato la configurazione, riavviare il servizio Redis se le sue impostazioni sono state modificate, quindi riavviare il runtime PHP che gestisce Nextcloud. Ad esempio, un'installazione di Apache potrebbe richiedere il riavvio di Apache, mentre un'installazione di PHP-FPM richiede il riavvio del servizio PHP-FPM corrispondente. I nomi dei servizi includono i numeri di versione di PHP in alcune distribuzioni. Con i container, ricreare o riavviare il servizio pertinente utilizzando il metodo supportato dalla distribuzione. Evitare di riavviare servizi non correlati senza criterio su un server di produzione.

Se Nextcloud restituisce un errore di configurazione o di sintassi, ripristina il backup e verifica la presenza di virgole mancanti, virgolette non corrispondenti, chiavi duplicate o modifiche errate config.php. Le impostazioni degli array di PHP devono rimanere all'interno della struttura di configurazione esistente.

Passaggio 6: Verificare la configurazione e testare le operazioni sui file

Aggiorna la panoramica dell'amministratore e verifica se l'avviso di blocco dei file transazionali è scomparso. Se hai configurato una cache locale e visualizzi ancora un avviso relativo alla cache di memoria, controllala separatamente; Nextcloud consiglia APCu per la cache locale in molte implementazioni a server singolo, mentre Redis gestisce il blocco e la cache distribuita. Non aggiungere Redis come cache locale predefinita, soprattutto in una configurazione multi-server.

È inoltre possibile verificare l'impostazione di blocco effettiva con lo strumento da riga di comando di Nextcloud. Eseguire il comando occdalla directory di Nextcloud come account del server web; su Debian/Ubuntu tale account è in genere www-data:

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

Il valore deve corrispondere al backend scelto, ad esempio \OC\Memcache\Rediso \OC\Memcache\KeyValueCache. Se il comando non riesce a trovare l'impostazione, verificare il percorso, l'utente di esecuzione e il file di configurazione attivo. La guida ufficiale dell'OCC spiega come eseguire i comandi amministrativi.

Infine, carica un piccolo file di prova, rinominalo, scaricalo e verifica che un client desktop o mobile sia in grado di sincronizzare la modifica. Questi controlli non simulano tutti i carichi di lavoro simultanei, ma confermano che le normali operazioni sui file funzionano ancora dopo la modifica. Per un server occupato o in cluster, monitora il log di Nextcloud e la disponibilità di Redis/Valkey durante il normale utilizzo. Se l'avviso persiste, verifica che il runtime PHP web abbia l'estensione quando utilizzi l'Opzione A, che l'host della cache sia raggiungibile, che le credenziali e le autorizzazioni del socket siano corrette e che tutti i nodi condividano lo stesso backend.

Cosa fa e cosa non fa il blocco dei file transazionali

Il blocco transazionale aiuta a prevenire il danneggiamento dei file quando le operazioni si sovrappongono, gestisce le transazioni interrotte e coordina le modifiche che coinvolgono file condivisi e archiviazione esterna. Non riserva un documento in modo che solo una persona possa modificarlo, non mostra chi altro sta modificando né unisce modifiche simultanee. Considera l'avviso come un problema di configurazione del server, quindi testa i normali caricamenti e la sincronizzazione dopo aver configurato il backend. Per la modifica collaborativa, utilizza un'applicazione progettata per la co-creazione anziché affidarti ai blocchi dei file.

Lascia un commento

6 migliori server Syslog gratuiti da provare per la registrazione centralizzata dei log

6 migliori server Syslog gratuiti da provare per la registrazione centralizzata dei log

Confronta sei server e collettori syslog gratuiti per Windows e Linux, inclusi strumenti con interfaccia grafica, opzioni open source, funzionalità di ricerca, avvisi e trasporto sicuro.

Cos'è IIS? Il server Web Windows di Microsoft e le sue alternative.

Cos'è IIS? Il server Web Windows di Microsoft e le sue alternative.

Scopri cosa fa Microsoft IIS, come funzionano la sua pipeline di richieste e i pool di applicazioni e quando Apache, NGINX o Caddy potrebbero essere più adatti alle tue esigenze di server web.

Risolvere l'elevato utilizzo della CPU in Jitsi Meet sui browser client.

Risolvere l'elevato utilizzo della CPU in Jitsi Meet sui browser client.

Diagnostica i picchi di utilizzo della CPU del browser Jitsi Meet e riduci il carico del client controllando i riquadri video, gli effetti della fotocamera, la grafica del browser e le impostazioni dell'host.

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Come monitorare le metriche di Jitsi Videobridge con Prometheus e Grafana

Monitora lo stato di salute, il carico della conferenza e il traffico di Jitsi Videobridge con il suo endpoint Prometheus integrato, quindi esplora e visualizza i dati in Grafana.

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Come configurare un nome di dominio personalizzato per Jitsi Meet Docker

Configura un dominio personalizzato per Jitsi Meet Docker con DNS, URL pubblico, HTTPS, Let's Encrypt, porte del firewall, impostazioni NAT e verifica end-to-end.

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 Not Found After SSL Renewal

Fix Zimbra Admin Console 404 errors after SSL renewal by checking the correct URL and port, proxy routing, service status, deployed certificates, and logs.

Risolvere l'avviso di Nextcloud "PHP OPcache non è configurato correttamente".

Risolvere l'avviso di Nextcloud "PHP OPcache non è configurato correttamente".

Scopri come diagnosticare e risolvere l'avviso di configurazione di PHP OPcache di Nextcloud controllando l'SAPI PHP attivo, i limiti di dimensionamento, i commenti e le impostazioni di riconvalida.

Risolvere gli errori di migrazione del database Kopano dopo un aggiornamento della versione di MySQL

Risolvere gli errori di migrazione del database Kopano dopo un aggiornamento della versione di MySQL

Risolvere i problemi di migrazione del database Kopano dopo un aggiornamento di MySQL o MariaDB verificando i backup, le versioni del server, le modalità SQL, il set di caratteri, lo stato dello schema e i log.

Come configurare l'autenticazione LDAP e Active Directory in Nextcloud

Come configurare l'autenticazione LDAP e Active Directory in Nextcloud

Collega Nextcloud a LDAP o Active Directory con trasporto sicuro, filtri per utenti e gruppi, attributi di accesso e un'implementazione collaudata.

Risolvere i problemi relativi alle notifiche di Element su Android senza i servizi Google: Guida a UnifiedPush

Risolvere i problemi relativi alle notifiche di Element su Android senza i servizi Google: Guida a UnifiedPush

Risolvi i problemi di notifiche di Element Android sui telefoni senza Google configurando UnifiedPush, le autorizzazioni Android, le impostazioni della batteria ed eseguendo test di verifica affidabili.