erreur de liens symboliques phpmyadmin après la mise à niveau d'Ubuntu

15

Après la mise à niveau de mon serveur Ubuntu vers la version 13.04, mon phpmyadmin n'est plus accessible. le navigateur signale 500 (erreur interne du serveur) et dans le fichier error.log, il est indiqué:

Erreur fatale PHP: require_once (): Échec de l'ouverture requise './libraries/php-gettext/gettext.inc' (include_path = '.') Dans /usr/share/phpmyadmin/libraries/select_lang.lib.php sur la ligne 370

Tout autre logiciel php fonctionne bien sur la machine, tout comme mysql. Phpmyadmin est installé correctement et fonctionnait correctement avant la mise à niveau dist. j'ai aussi fait sudo aptitude reinstall phpmyadminmais cela n'a pas aidé.

le numéro de version de phpmyadmin est 4: 3.5.8.1-1

des idées, quel pourrait être le problème ici?

/ edit: maintenant j'ai découvert que les liens symboliques ici ne semblent pas fonctionner:

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

j'ai sauvegardé le dossier php-gettextet cp -r'd le lien symbolique sur, maintenant cela fonctionne. donc cela semble être un problème de lien symbolique.

c'est le début de mon /etc/phpmyadmin/apache.conf

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

il est donc censé suivre immédiatement les liens symboliques. avant la mise à niveau d'ubuntu, tout fonctionnait bien. alors quel est le problème avec les liens symboliques?

mcnesium
la source
Vérifiez les autorisations sous /usr/share/php/php-gettext. Utilisez-vous SELinux / AppArmor?
dawud

Réponses:

7

Pour moi, la solution suivante a résolu le problème:

Dans mon fichier de configuration de site Web, j'ai la section suivante:

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

Le seul changement que j'ai fait depuis l'installation d'Ubuntu 13.04 est d'inclure / usr / share / php / php-gettext / dans open_basedir, et cela a fait l'affaire.

gdl
la source
23

Pour les autres:

sudo apt-get install php-gettext

pourrait être la réponse (surtout avec php7 car il semble que cela ne soit pas inclus par défaut, peut-être parce que c'est une extension de poire).

deux fois
la source
J'ai eu l'erreur après avoir effectué une nouvelle installation d'Ubuntu 16.04. Cela a fonctionné après la mise à niveau de 15.10 vers 16.04, mais j'ai dû faire une nouvelle installation en raison d'autres problèmes. L' installation Explicitement le php-gettextpaquet (et en ajoutant Require all grantedà phpmyadmin.conf) fait fonctionner à nouveau.
bovender
1
c'est la vraie réponse!
tika
Merci pour ça; Je n'y ai pas pensé; cela et php-mbstringont été nécessaires pour que phpmyadmin fonctionne correctement avec php7
jhaagsma
1
C'est étrange, car php-gettext est une dépendance du paquet phpmyadmin: packages.ubuntu.com/xenial/phpmyadmin donc je ne sais pas pourquoi il n'est pas déjà là.
Sam Wilson
Installez d'abord LAMP, puis phpmyadmin, peut-être que cela fait partie du problème
deux fois le
5

Si votre open_basedircontient /usr/share/php/php-gettext/déjà (comme dans mon cas) et que vous ne pouvez pas le faire fonctionner avec les réponses précédentes, faites:

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

supprime les liens symboliques

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

crée des liens durs

Cela fait fonctionner phpmyadmin à nouveau. Pourquoi il s'est cassé en 13.04 et les liens symboliques ne sont pas suivis alors que le apache.conf dit qu'ils devraient, reste un mystère pour moi.

user221931
la source
Merci, ça y est. La ligne open_basedir contenait déjà le répertoire php-gettext, donc la réinstallation de ces liens était nécessaire.
Karma Fusebox
0

J'ai dû désactiver (préfixer #) l' Alias /phpmyadmin /usr/share/phpmyadminentrée /etc/apache2/conf-available/phpmyadmin.confcar j'utilise un fichier vhost personnalisé pour phpmyadmin pour le servir sur un sous-domaine. Avec l'ajout, Aliascela n'a pas fonctionné pour une raison quelconque.

Lorenz Haase
la source
0

Si phpMyAdmin s'exécute sur un serveur Nginx, le php.inidoit en outre ajouter le chemin /usr/share/php/php-php-gettextd' accès à la open_basedirclé.

Lucky Luke
la source