Problem
Nach einem Upgrade der PHP-Version von 5.x auf 7.x kann i-doit keine Verbindung zum Datenbank-Backend (MariaDB/MySQL) aufbauen. Stattdessen erscheint eine Fehlermeldung:
Database error : php_network_getaddresses: getaddrinfo failed: Name or service not known
Bei der Installation von i-doit wurde als Hostname für MariaDB/MySQL localhost
angegeben. Es handelt sich beim Betriebssystem um GNU/Linux.
Hintergrund
Wird der Hostname für MariaDB/MySQL mit localhost
konfiguriert, verwendet PHP zur Verbindung zum Datenbank-Backend zwingend einen Unix Socket. Bei einem aktuellen Debian GNU/Linux oder Ubuntu Linux ist der Pfad zum Unix Socket in der PHP-Konfiguration nicht explizit angegeben. Stattdessen ist die Einstellung mysqli.default_socket
leer. i-doit versucht daher, diese Einstellung mit einem falschen Wert zu ersetzen, was allerdings scheitert.
Lösung
Die PHP-Einstellung mysqli.default_socket
ist auf einen gültigen Pfad zum Unix Socket von MariaDB/MySQL zu setzen. Unter Debian GNU/Linux und Ubuntu Linux lautet der Pfad /var/run/mysqld/mysqld.sock
:
mysqli.default_socket = /var/run/mysqld/mysqld.sock
Der Pfad kann bei anderen Unix-artigen Betriebssystemen abweichen. Die Konfigurationsdateien von MariaDB/MySQL geben in der Einstellung socket
den Pfad zum Unix Socket an.
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.