Installation blockiert durch die Berechtigungen der conf.php
Der Dolibarr-Installationsassistent startet wegen der Datei conf.php nicht. Was die Meldung bedeutet, welcher Befehl sie behebt und die Falle mit chmod 666.
Sie öffnen den Dolibarr-Installationsassistenten. Auf der Seite mit den Voraussetzungen steht statt der Schaltfläche „Start“:
Die Konfigurationsdatei htdocs/conf/conf.php ist nicht beschreibbar. Bitte überprüfen Sie die Dateizugriffsrechte. Die in der Konfigurationsdatei conf.php gesetzten Berechtigungen verhindern eine Ausführung des Installationsvorganges.
Auf Englisch lautet die Meldung Setup not allowed by conf.php permissions.
Was die Meldung bedeutet
Während der Installation schreibt der Assistent Ihre Einstellungen (Datenbank, Ordner, Adresse der
Website) in die Datei htdocs/conf/conf.php. Er prüft also zuerst, ob der Webserver in diese
Datei schreiben darf. Ihr eigenes Konto spielt dabei keine Rolle, sondern das Konto, unter dem
Apache oder PHP-FPM läuft: www-data unter Debian und Ubuntu.
Die Datei existiert, aber dieses Konto darf sie nicht ändern, also hält der Assistent an. Kaputt ist nichts, es ist eine Prüfung.
Variante: „nicht vorhanden und konnte auch nicht erstellt werden“
Gibt es conf.php gar nicht, versucht der Assistent, sie aus conf.php.example anzulegen. Ist auch
der Ordner conf/ schreibgeschützt, erscheint:
Die Konfigurationsdatei htdocs/conf/conf.php ist nicht vorhanden und konnte auch nicht erstellt werden! Für den Installationsvorgang erstellen Sie bitte die Datei htdocs/conf/conf.php und machen Sie diese für Ihren Webserver beschreibbar.
Gleiche Ursache, gleiche Lösung.
Die Lösung auf einem Linux-Server
Im Ordner, in dem Dolibarr installiert ist (der Ordner mit htdocs/):
sudo touch htdocs/conf/conf.php
sudo chown www-data:www-data htdocs/conf/conf.php
Der erste Befehl ist nur nötig, wenn die Datei nicht existiert. Laden Sie danach die Seite des Assistenten neu: Die Zeile lautet nun „Die Konfigurationsdatei htdocs/conf/conf.php ist beschreibbar“, und die Schaltfläche „Start“ ist wieder da.
Läuft Ihr Webserver nicht unter www-data, verrät dieser Befehl seinen Namen:
ps aux | grep -E 'apache|httpd|php-fpm'
Die erste Spalte nennt den Benutzer. Ignorieren Sie die Zeile von root, das ist der
Hauptprozess: Die anderen Zeilen zeigen das Konto des Webservers.
Unter Docker
Beim offiziellen Image dolibarr/dolibarr liegt die Datei im Container unter
/var/www/html/conf/conf.php:
docker exec <container> chown www-data:www-data /var/www/html/conf/conf.php
Die Falle mit chmod 666
Die Meldung von Dolibarr schlägt chmod 666 vor. Das gibt die Installation tatsächlich frei, auch
wenn chown nicht möglich ist, etwa über einen FTP-Client. Es muss danach aber rückgängig gemacht
werden.
Nach der Installation will Dolibarr eine schreibgeschützte conf.php. Gehört die Datei dem
Webserver, entzieht Dolibarr das Schreibrecht selbst, sobald ein Administrator zum ersten Mal die
Startseite öffnet: Auf der Testinstanz ging die Datei von allein von 644 auf 444. Gehört die Datei
einem anderen Konto, wie nach einem chmod 666, geht das nicht, und die Startseite zeigt:
Achtung: Die Konfigurationsdatei (htdocs/conf/conf.php) kann von Ihrem Webserver überschrieben werden. Dies ist eine ernstzunehmende Sicherheitslücke.
So verschwindet die Warnung:
sudo chmod 444 htdocs/conf/conf.php
Deshalb ist chown die bessere Wahl: Dolibarr sichert die Datei dann selbst ab.
Direkt nach der Installation
Einen Schritt nimmt Ihnen der Assistent nicht ab: die Datei install.lock anzulegen, die die
Installationsseiten schließt. Siehe
install.lock: wohin damit und wie man damit aktualisiert.
Hilfe holen
Wenn Sie es lieber erledigen lassen: Installation und Einrichtung gibt es als Paket zum Festpreis, der vor Arbeitsbeginn feststeht.