Come appare il messaggio
Your data directory is invalid
Ensure there is a file called ".ocdata" in the root of the data directory.Cause frequenti
- Il volume dei dati (secondo disco, NFS, SMB, bind mount) non è montato dopo un riavvio, quindi il percorso esiste ma è vuoto.
datadirectoryinconfig.phppunta a un percorso diverso da quello reale, ad esempio dopo uno spostamento o una migrazione.- Il file nascosto
.ocdatanon è stato copiato, perché la copia ha saltato i file con il punto o sono state ripristinate da un backup solo alcune cartelle. - L'utente del web server non può leggere la cartella, ad esempio dopo un
chownsbagliato o opzioni di mount cambiate.
Verifica
- Quale percorso usa Nextcloud?
grep datadirectory /var/www/nextcloud/config/config.php - Il file marcatore c'è?
ls -la /srv/nextcloud-data/.ocdata - Il volume è davvero montato?
findmnt /srv/nextcloud-data - Proprietario e permessi della cartella
stat -c '%U:%G %a %n' /srv/nextcloud-data
Soluzione
- Monta prima il volume e verifica che le cartelle degli utenti e
nextcloud.logsiano visibili nella data directory. Fai partire il mount prima del web server, ad esempio conRequiresMountsFor=/srv/nextcloud-datain un drop-in systemd. - Se il percorso in
config.phpè sbagliato, scrivi quello reale indatadirectorye da nessun'altra parte. - Solo se la cartella è la vera data directory e il file manca, ricrealo:
sudo -u www-data touch /srv/nextcloud-data/.ocdata. Non farlo mai su un punto di mount vuoto. - Correggi il proprietario:
chown -R www-data:www-data /srv/nextcloud-datae permessi0750sulla cartella. - Ricarica la pagina. Per le copie future usa
rsync -a, che mantiene i file con il punto.
Domande frequenti
Posso creare .ocdata per far sparire l'errore?
Solo se sei sicuro che la cartella contenga i tuoi dati reali. Su una cartella vuota e non montata Nextcloud partirebbe con un'istanza nuova e vuota, e i primi upload finirebbero sul disco sbagliato.
Perché succede a ogni riavvio?
Di solito il volume viene montato dopo l'avvio del web server, oppure il mount fallisce in silenzio. Controlla la unit di mount o la riga di fstab e aggiungi una dipendenza perché il web server aspetti.