So sieht die Meldung aus
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-permissionsHäufige Ursachen
- Dateien wurden als root kopiert oder wiederhergestellt, der Besitzer ist also nicht
www-data(odernginx,apache). - Die Rechte sind zu eng, z. B. Modus 0700 für einen anderen Benutzer.
- SELinux oder AppArmor verhindert das Schreiben im Verzeichnis.
- In Docker gehört das eingebundene Volume einem anderen Benutzer als dem im Container.
config_is_read_onlyist absichtlich auftruegesetzt.
Prüfen
- Besitzer und Rechte von Verzeichnis und Datei
ls -ld /var/www/nextcloud/config /var/www/nextcloud/config/config.php - Welcher Benutzer führt PHP aus?
ps -eo user,comm | grep php-fpm | sort -u - Kann dieser Benutzer schreiben?
sudo -u www-data test -w /var/www/nextcloud/config && echo writable - Ist die Konfiguration schreibgeschützt?
grep -n config_is_read_only /var/www/nextcloud/config/config.php
Lösung
- Dem Webserver-Benutzer das Verzeichnis geben:
chown -R www-data:www-data /var/www/nextcloud/config. - Sinnvolle Rechte setzen:
chmod 750 /var/www/nextcloud/configundchmod 640 /var/www/nextcloud/config/config.php. - Beschreibbar müssen nur
config/,data/,apps/undthemes/sein. Nicht den ganzen Baum beschreibbar machen. - Bei SELinux das Verzeichnis kennzeichnen:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/nextcloud/config(/.*)?'undrestorecon -R /var/www/nextcloud/config. - In Docker den Besitzer des Volumes auf dem Host korrigieren oder
config_is_read_onlyauffalsezurücksetzen, falls es nicht gewollt war.
Häufige Fragen
Ist es sicher, den ganzen Nextcloud-Ordner per chown zu ändern?
Es funktioniert, ist aber mehr als nötig. Nach dem Admin-Handbuch besitzt der Webserver-Benutzer nur die vier beschreibbaren Ordner, der Code bleibt für ihn schreibgeschützt.
Der Fehler erscheint direkt nach einer Wiederherstellung aus dem Backup. Warum?
Backups behalten oft numerische Benutzer-IDs. Nutzt das neue System andere IDs, passt der Besitzer nicht mehr. Nach der Wiederherstellung den Besitzer neu setzen.