Je ne peux pas ouvrir phpMyAdmin, obtenir l'erreur 301 ou 500

8

J'ai installé phpMyAdmin, mais je ne peux l'ouvrir sur aucun navigateur: j'obtiens une redirection 301 (*) si je navigue http://localhost:8080/phpmyadmin. Si j'ajoute un /à la fin des adresses, j'obtiens un statut d'erreur 500 à la place .

(*) capturé à l'aide de Wireshark. Si j'utilise netcat depuis le terminal sur le même hôte, j'obtiens une redirection 301 vers une autre adresse .

L'environnement est une machine virtuelle que j'ai construite à des fins de développement / test, où j'ai installé un environnement LEMP (Linux / Nginx / MySQL / PHP). Il s'agit d'une installation propre de CentOS 6 64 bits fonctionnant en tant qu'invité sur un hôte Ubuntu 12.04 64 bits. La machine virtuelle s'exécute en mode NAT avec redirection de port. Je peux ouvrir http://localhost:8080sur la machine invitée et voir la page d'accueil de nginx. Je peux également ouvrir une page phpinfo , donc je sais que PHP est en cours d'exécution.

J'ai installé les packages nginx, MySQM, PHP et phpMyAdmin chacun séparément. J'utilise les paramètres par défaut de phpMyAdmin. Après avoir installé MySQL, j'ai exécuté la mysql_secure_installationcommande et, entre autres options, j'ai désactivé l'accès root à distance.

Voici mes fichiers de configuration:

  • /etc/php.ini: lien
  • /etc/php.d/mysql.ini: lien
  • /etc/nginx/nginx.conf: lien
  • /etc/nginx/conf.d/default.conf: link (Afin d'exécuter des scripts PHP, je l'ai personnalisé, en suivant des tutoriels en ligne, et je ne suis pas vraiment sûr de ce que je faisais .)
  • /etc/phpMyAdmin/config.inc.php: lien
Ce gars brésilien
la source
4
Cette question a obtenu 4 votes de clôture. Pourquoi? meta.superuser.com/questions/6455/…
Ce brésilien Guy

Réponses:

4

Plusieurs raisons m'ont empêché de me connecter à phpMyAdmin:

mbstring

L'erreur 500 génère un message PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177sur le fichier /var/log/php-fpm/www-error.log. Selon un commentaire sur http://www.php.net/manual/en/mbstring.installation.php, j'ai essayé d'installer le php-mbstringpackage mais il était déjà présent.

Le redémarrage du a php-fpm servicerésolu l'erreur 500.

sessions php

Après avoir résolu l'erreur précédente, j'ai eu l'erreur suivante:

entrez la description de l'image ici

/etc/phpmyadmin/config.inc.php avait la ligne

$ cfg ['Servers'] [$ i] ['auth_type'] = 'cookie';

mais la session.save_pathvariable de PHP est définie sur le /var/lib/php/sessiondossier inexistant .

La création d'un dossier avec les autorisations appropriées a résolu cette erreur, je peux me connecter correctement.

redirection de barre oblique finale

Si j'essaie d'accéder à n'importe quelle adresse sur ce serveur sans barre oblique de fin à la fin de l'URL, nginx ajoute une barre oblique de fin et en supprime sa :8080partie. Cela n'arrive pas si je laisse la barre oblique de fin.

(par exemple: http://localhost:8080/exampleest redirigé vers http://localhost/example/. Le fait que phpMyAdmin s'exécute à la fois dans la machine virtuelle et sur la machine hôte a ajouté plus de confusion car je verrais la boîte de dialogue de connexion phpMyAdmin, mais sur la mauvaise destination).

Cela semble être une erreur nginx courante . J'ai googlé et essayé diverses solutions sans succès. Si je trouve une solution pour mon cas, je mettrai à jour cette réponse.

Ce gars brésilien
la source
0

Les connexions root doivent être autorisées sur le /etc/phpmyadmin/config.inc.phpfichier de configuration.

Ajoutez la ligne suivante:

$ cfg ['Servers'] [$ i] ['AllowRoot'] = TRUE;

Pbarney8
la source
3
bonjour et bienvenue à SuperUser. veuillez prendre le temps d'expliquer la syntaxe et les détails de ce que ces lignes de commande vont effectuer. il peut être pertinent pour les futurs lecteurs ou pour l'AQ lui-même.
Lorenzo Von Matterhorn
Je ne peux même pas voir l'écran de connexion phpmyadmin. J'ai ajouté la ligne au fichier cfg, mais cela n'a pas résolu le problème.
Ce brésilien Guy
docs.phpmyadmin.net/en/latest/config.html indique que la valeur par défaut est true. Je ne l'ai pas défini sur false et il n'est pas présent dans le fichier de configuration.
Ce brésilien Guy
0

Vérifiez votre /var/log/nginx/error.logpour voir ce que dit l'erreur 500.

Il semble que vous exécutiez deux configurations (une sur le port 80 et une autre sur 8080) qui peuvent entrer en conflit.

Kevin
la source
Je n'exécute pas deux configurations de serveur Web sur la même machine. 8080 est un port de redirection NAT pour la machine virtuelle invitée et 80 est le port pour le système d'exploitation hôte. Techniquement, ils sont sur la même machine, mais virtualisés les uns par rapport aux autres.
Ce brésilien Guy
Cependant, votre suggestion de rechercher des fichiers journaux m'a mis dans la bonne direction.
Ce brésilien Guy