phpMyAdmin no funciona después de la actualización de Ubuntu 16.04 a 18.04

phpMyAdmin no funciona después de la actualización de Ubuntu 16.04 a 18.04

Tengo un servidor Ubuntu con MySQL, Apache2 y phpMyAdmin. Hoy realicé una actualización de Ubuntu 16.04 a 18.04. Ahora tengo el problema de que phpMyAdmin muestra solo una página web en blanco sin ningún contenido.

Encontré estas entradas en el registro de errores de Apache (cliente y referente editados por mí):

[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>

Estas líneas de registro hacen referencia a estos recursos:

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

Pero estos son archivos que nunca cambié manualmente. Así que no me atrevo a cambiarlos ahora.

Este es seller_config.php, líneas 60 a 68 (la línea 64 comienza con "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');
}

Ambos directorios,

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

existe. Su propietario es root:root, el permiso es para ambos: 755

php-gettext contiene 3 enlaces simbólicos a los 3 archivos en php-php-gettext (enlace y destino con el mismo nombre), que son:

  • gettext.inc
  • obtenertexto.php
  • transmisiones.php

Todos los archivos pertenecen a raíz: raíz. Permisos de enlaces simbólicos: 777. Los permisos de los archivos en php-php-gettext son: 644.


Este es common.inc.php, líneas 74 a 77:

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

¿Que esta mal aquí?

más importante: ¿Qué debo hacer para corregirlo?

Respuesta1

Parece que la ubicación de su directorio PHP gettext cambió con la actualización y está utilizando open_basedirpara restringir desde qué directorios se cargan los archivos PHP.

Para resolver el problema, actualice su open_basedirconfiguración php.ini(o posiblemente en la configuración de Apache) para que contenga la nueva ruta.

información relacionada