web-dev-qa-db-fra.com

Appel d'une erreur __ () de fonction non définie - phpMyAdmin

Quand je veux lancer phpMyAdmin sur mon navigateur, cela me montre cette erreur:

Fatal error: Call to undefined function __() in /usr/share/phpMyAdmin/libraries/core.lib.php on line 229
    Call Stack
    #   Time    Memory  Function    Location
    1   0.0010  344984  {main}( )   ../index.php:0
    2   0.0026  502720  require_once( '/usr/share/phpMyAdmin/libraries/common.inc.php' )    ../index.php:12
    3   0.0285  3836408 require( '/usr/share/phpMyAdmin/libraries/session.inc.php' )    ../common.inc.php:344
    4   0.0288  3846488 PMA_fatalError( )   ../session.inc.php:97

J'utilise Fedora 17 avec PHP 5.5.7.

Une idée pour résoudre le problème?

34
meysam

Vérifiez que votre répertoire de session est accessible en écriture par le processus du serveur Web.

La meilleure façon de le faire est de créer votre propre fichier phpinfo; Dans n'importe quel dossier accessible sur le Web, créez un fichier (vous pouvez l'appeler test.php ou phpinfo.php ou ce que vous voulez) avec le contenu suivant:

<?php
phpinfo();
?>

Ouvrez ce fichier dans votre navigateur (http://localhost/test.php ou similaire) et cherchez la ligne session.save_path. C'est votre dossier de session. assurez-vous que les autorisations sont appropriées et voyez si cela aide.

Plus d'informations d'un fil similaire.

31
Isaac Bennetch

Je viens de mettre en place CentOS 7 et d’essayer phpmyadmin et je rencontrais le même problème. J'espère que cela t'aides 

J'ai défini les autorisations appropriées sur le répertoire des sessions et redémarré Apache, j'ai même désactivé SELinux mais la même erreur s'est affichée. 

Je n'ai pas eu le php-mbstring installé - une fois que j'ai fait cela, cela a fonctionné

Sudo yum install php-mbstring

Vérifiez la configuration requise pour phpmyadmin

29
naveen

Pour les utilisateurs de Debian: (j'ai fini dans ce fil en tant qu'utilisateur de Debian) J'ai lu la réponse de @naveen et il est apparu que je n'avais pas installé php-mbstring, son installation a résolu mon problème:

Sudo apt-get install php-mbstring
8
Tobias Beuving

Presque comme d'autres utilisateurs l'avaient dit ... Je tourne sous Debian 8 avec PHP7 et j'ai rencontré le problème, il suffit d'installer;

Sudo apt-get install php7.0-mbstring

Suivi en redémarrant le service Apache;

Sudo service Apache2 restart

Et puis phpmyadmin a bien fonctionné.

2
BlissSol

Dans mon cas, avec php-fpm sous CentOS 7 , c’est la raison pour laquelle @Issac a souligné, et vient de résoudre avec:

mkdir -p /var/lib/php/session
chown -R Apache:apache /var/lib/php

Alors résolu.

Créez simplement le dossier de session, je pense que cette solution directe peut fonctionner sur ce cas spécifique.

AVERTISSEMENT: Avant cela, vérifiez si le dossier /var/lib/php existe et quel utilisateur est utilisé pour le processus php-fpm. Si vous n'utilisez personne pour le processus php-fpm, la permission 777 pour le /var/lib/php/session peut bien fonctionner.

1
Alfred Huang

Si vous utilisez un autre utilisateur pour une raison quelconque, par exemple, si vous avez httpd-itk (RHEL/CentOS/Fedora) ou Apache2-mpm-itk (Debian/Ubuntu) et que votre utilisateur principal n’est pas Apache ou www-data, faites alors:

Sudo usermod -a -G Apache youruser

ou

Sudo usermod -a -G www-data youruser

en fonction de votre distribution, phpMyAdmin fonctionnera.

1
Francisco de la Peña

Vérifiez si vos extensions PHP sont chargées. Lorsque les extensions mysql ou mysqli ne parviennent pas à se charger, le résultat sera exactement cette erreur (ce qui est assez déroutant). Pour vérifier que vos extensions se chargent correctement, jetez un coup d'œil à la sortie de la fonction PHP phpinfo () - toutes les extensions chargées y sont listées.

1
Jpsy

Dans mon cas, cette erreur était intermittente et j'avais eu phpMyAdmin installé et fonctionnant correctement pendant des années. En lisant les réponses ici, il semblait que l'erreur puisse avoir quelque chose à voir avec les sessions.

Sous Ubuntu 16.04, les sessions PHP se trouvent dans: /var/lib/php/sessions .__ et ressemblent à:

$ Sudo ls -al /var/lib/php/sessions/
total 128
drwx-wx-wt 2 root     root     73728 Mar  4 14:09 .
drwxr-xr-x 4 root     root      4096 Mar  8  2017 ..
-rw------- 1 www-data www-data    67 Mar  4 14:05 sess_dvg6vo1k1s1c0353rjk09g9vu1
-rw------- 1 www-data www-data    67 Mar  4 13:49 sess_e4ha0gl4f7gukku1o2uc4h5rs2
-rw------- 1 www-data www-data    67 Mar  4 14:05 sess_qhbve6k4a7svu6pk0lk568jgt0
-rw------- 1 www-data www-data    67 Mar  4 13:49 sess_sh48e898i7ad14oidsph08in10
-rw------- 1 www-data www-data 30044 Mar  4 14:04 sess_uvumc2341dvtfikl27kpile46pmfbon1

(Ce dernier dans la liste m'a semblé "drôle".)

J'ai d'abord essayé de redémarrer Apache2 mais les sessions y ont apparemment survécu. Alors je les ai juste supprimés. (Je ne connais pas d'autre moyen de les effacer.) Lors de l'actualisation du navigateur, la connexion phpMyAdmin affichée et tout fonctionne comme prévu.

1
cbmckay