Come appare il messaggio
Cannot write into "config" directory!
This can usually be fixed by giving the web server write access to the config directory. See https://docs.nextcloud.com/server/latest/admin_manual/installation/installation_wizard.html#setting-strong-directory-permissionsCause frequenti
- I file sono stati copiati o ripristinati come root, quindi il proprietario non è
www-data(onginx,apache). - I permessi sono troppo stretti, ad esempio modo 0700 per un altro utente.
- SELinux o AppArmor impedisce la scrittura nella cartella.
- In Docker il volume montato appartiene a un utente diverso da quello nel container.
config_is_read_onlyè impostato sutruedi proposito.
Verifica
- Proprietario e permessi di cartella e file
ls -ld /var/www/nextcloud/config /var/www/nextcloud/config/config.php - Quale utente esegue PHP?
ps -eo user,comm | grep php-fpm | sort -u - Quell'utente può scrivere?
sudo -u www-data test -w /var/www/nextcloud/config && echo writable - La configurazione è in sola lettura?
grep -n config_is_read_only /var/www/nextcloud/config/config.php
Soluzione
- Dai la cartella all'utente del web server:
chown -R www-data:www-data /var/www/nextcloud/config. - Imposta permessi sensati:
chmod 750 /var/www/nextcloud/configechmod 640 /var/www/nextcloud/config/config.php. - Devono essere scrivibili solo
config/,data/,apps/ethemes/. Non rendere scrivibile tutto l'albero. - Con SELinux etichetta la cartella:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/config(/.*)?'erestorecon -R /var/www/nextcloud/config. - In Docker correggi il proprietario del volume sull'host, oppure riporta
config_is_read_onlyafalsese non era voluto.
Domande frequenti
È sicuro fare chown su tutta la cartella di Nextcloud?
Funziona, ma è più del necessario. Secondo il manuale admin l'utente del web server possiede solo le quattro cartelle scrivibili, mentre il codice per lui resta in sola lettura.
L'errore compare subito dopo un ripristino dal backup. Perché?
I backup spesso conservano gli ID utente numerici. Se il nuovo sistema usa ID diversi, il proprietario non corrisponde più. Reimposta il proprietario dopo il ripristino.