phpMyAdmin funktioniert nach dem Upgrade von Ubuntu 16.04 auf 18.04 nicht

phpMyAdmin funktioniert nach dem Upgrade von Ubuntu 16.04 auf 18.04 nicht

Ich habe einen Ubuntu-Server mit MySQL, Apache2 und phpMyAdmin. Heute habe ich ein Upgrade von Ubuntu 16.04 auf 18.04 durchgeführt. Jetzt habe ich das Problem, dass phpMyAdmin nur eine leere weiße Webseite ohne Inhalt anzeigt.

Ich habe diese Einträge im Apache-Fehlerprotokoll gefunden (Client und Referrer von mir bearbeitet):

[Mon Aug 27 20:10:00.558433 2018] [php7:warn] [pid 17925] [client <ip:port>] PHP Warning:  is_dir(): open_basedir restriction in effect. File(/usr/share/php/php-php-gettext/) is not within the allowed path(s): (/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/) in /usr/share/phpmyadmin/libraries/vendor_config.php on line 64, referer: <url>
[Mon Aug 27 20:10:00.560176 2018] [php7:warn] [pid 17925] [client <ip:port>] PHP Warning:  require_once(): open_basedir restriction in effect. File(/usr/share/php/php-php-gettext/gettext.inc) is not within the allowed path(s): (/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/) in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer: <url>
[Mon Aug 27 20:10:00.561106 2018] [php7:warn] [pid 17925] [client <ip:port>] PHP Warning:  require_once(/usr/share/php/php-php-gettext/gettext.inc): failed to open stream: Operation not permitted in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer: <url>
[Mon Aug 27 20:10:00.561554 2018] [php7:error] [pid 17925] [client <ip:port>] PHP Fatal error:  require_once(): Failed opening required '/usr/share/php/php-gettext/gettext.inc' (include_path='.') in /usr/share/phpmyadmin/libraries/common.inc.php on line 77, referer: <url>

Diese Protokollzeilen beziehen sich auf diese Ressourcen:

  • /usr/share/phpmyadmin/libraries/vendor_config.php on line 64
  • /usr/share/phpmyadmin/libraries/common.inc.php on line 77

Da es sich hier aber um Dateien handelt, die ich nie manuell geändert habe, traue ich mich jetzt nicht, sie zu ändern.

Dies ist vendor_config.php, Zeile 60 bis 68 (Zeile 64 beginnt mit „if“):

/**
 * Path to gettext.inc file. Useful when you want php-gettext somewhere else,
 * eg. /usr/share/php/gettext/gettext.inc.
 */
if (is_dir('/usr/share/php/php-php-gettext/')) {
    define('GETTEXT_INC', '/usr/share/php/php-php-gettext/gettext.inc');
} else {
    define('GETTEXT_INC', '/usr/share/php/php-gettext/gettext.inc');
}

Beide Verzeichnisse,

  • /usr/share/php/php-gettext/
  • /usr/share/php/php-php-gettext/

existieren. Ihr Besitzer ist root:root, die Berechtigung für beide ist: 755

php-gettext enthält 3 symbolische Links zu den 3 Dateien in php-php-gettext (Link und Ziel mit demselben Namen), und zwar:

  • gettext.inc
  • gettext.php
  • streams.php

Alle Dateien gehören zu root:root. Berechtigungen für symbolische Links: 777. Berechtigungen für die Dateien in php-php-gettext: 644.


Dies ist common.inc.php, Zeile 74 bis 77:

/**
 * Load gettext functions.
 */
require_once GETTEXT_INC;

Was ist hier falsch?

wichtiger: Was muss ich tun, um es zu korrigieren?

Antwort1

Es sieht so aus, als ob sich der Speicherort Ihres PHP-Gettext-Verzeichnisses mit dem Upgrade geändert hat und Sie mithilfe open_basedirvon „Einschränken“ einschränken, aus welchen Verzeichnissen PHP-Dateien geladen werden.

Um das Problem zu beheben, aktualisieren Sie Ihre open_basedirEinstellungen php.ini(oder möglicherweise in der Apache-Konfiguration), sodass sie den neuen Pfad enthalten.

verwandte Informationen