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?


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.


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


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.


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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.