Error de enlaces simbólicos de phpmyadmin después de la actualización de ubuntu

15

Después de la actualización de mi servidor ubuntu a 13.04, ya no se puede acceder a mi phpmyadmin. el navegador informa 500 (error interno del servidor) y en el error.log dice:

Error fatal de PHP: require_once (): Se requiere una apertura fallida './libraries/php-gettext/gettext.inc' (include_path = '.') En /usr/share/phpmyadmin/libraries/select_lang.lib.php en la línea 370

Cualquier otro software php funciona bien en la máquina y también lo hace mysql. Phpmyadmin está instalado correctamente y funcionó bien antes de la actualización dist. También lo hice sudo aptitude reinstall phpmyadminpero eso no ayudó.

El número de versión de phpmyadmin es 4: 3.5.8.1-1

alguna idea, ¿qué podría estar mal aquí?

/ edit: ahora descubrí que los enlaces simbólicos aquí no parecen funcionar:

mcnesium@fluse:/usr/share/phpmyadmin/libraries/php-gettext$ ls -l
total 0
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.inc -> ../../../php/php-gettext/gettext.inc
lrwxrwxrwx 1 root root 36 Apr 25 03:38 gettext.php -> ../../../php/php-gettext/gettext.php
lrwxrwxrwx 1 root root 36 Apr 25 03:38 streams.php -> ../../../php/php-gettext/streams.php

php-gettextHice una copia de seguridad de la carpeta y cp -r'd el enlace simbólico, ahora funciona. así que esto realmente parece ser un problema de enlace simbólico.

este es el comienzo de mi /etc/phpmyadmin/apache.conf

# phpMyAdmin default Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
    Options FollowSymLinks
    DirectoryIndex index.php

entonces se supone que debe seguir los enlaces simbólicos de inmediato. antes de la actualización de ubuntu todo funcionó bien. Entonces, ¿qué pasa con los enlaces simbólicos?

Mcnesio
fuente
Verifique los permisos en /usr/share/php/php-gettext. ¿Estás usando SELinux / AppArmor?
Dawud

Respuestas:

7

Para mí, la siguiente solución resolvió el problema:

En el archivo conf de mi sitio web, tengo la siguiente sección:

<IfModule mod_php5.c>
    AddType application/x-httpd-php .php

    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_flag register_globals Off
    php_admin_flag allow_url_fopen Off
    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/
</IfModule>

El único cambio que he hecho desde la instalación de Ubuntu 13.04 es incluir / usr / share / php / php-gettext / en open_basedir, y eso fue el truco.

gdl
fuente
23

Para otros:

sudo apt-get install php-gettext

podría ser la respuesta (especialmente con php7 ya que parece que esto no está incluido por defecto, tal vez porque es una extensión de pera).

dos veces
fuente
Recibí el error después de realizar una nueva instalación de Ubuntu 16.04. Funcionó después de actualizar 15.10 a 16.04, pero tuve que hacer una instalación nueva debido a otros problemas. Instalar explícitamente el php-gettextpaquete (y la adición de Require all granteda phpmyadmin.conf) hace que funcione de nuevo.
bovender
1
Esta es la respuesta real!
tika
Gracias por eso; No pensé en eso; esto y php-mbstringse requirió que phpmyadmin funcionara bien para mí con php7
jhaagsma
1
Es extraño, porque php-gettext es una dependencia del paquete phpmyadmin: packages.ubuntu.com/xenial/phpmyadmin, así que no estoy seguro de por qué no está allí.
Sam Wilson
Instale LAMP primero, luego phpmyadmin, tal vez eso sea parte del problema
veces el
5

Si ya open_basedircontiene /usr/share/php/php-gettext/(como en mi caso) y no puede hacer que funcione con las respuestas anteriores, haga lo siguiente:

sudo rm /usr/share/phpmyadmin/libraries/php-gettext/*

elimina los enlaces simbólicos

sudo ln /usr/share/php/php-gettext/* /usr/share/phpmyadmin/libraries/php-gettext

crea enlaces duros

Esto hace que phpmyadmin vuelva a funcionar. Por qué se rompió en 13.04 y los enlaces simbólicos no se siguen mientras apache.conf dice que deberían hacerlo, sigue siendo un misterio para mí.

usuario221931
fuente
Gracias, eso lo hizo. La línea open_basedir ya contenía el directorio php-gettext, por lo que era necesario reinstalar esos enlaces.
Karma Fusebox
0

Tuve que deshabilitar (prefijo con #) Alias /phpmyadmin /usr/share/phpmyadminin /etc/apache2/conf-available/phpmyadmin.confya que estoy usando un archivo vhost personalizado para phpmyadmin para servirlo en un subdominio. Con el adicional Aliasno funcionó por alguna razón.

Lorenz Haase
fuente
0

Si phpMyAdmin se ejecuta en un servidor Nginx, el php.iniadicional necesita agregar la ruta /usr/share/php/php-php-gettexta la open_basedirclave.

Luckyluke
fuente