Ich habe phpMyAdmin installiert, kann es aber in keinem Browser öffnen: Ich erhalte eine 301-Weiterleitung (*), wenn ich zu navigiere http://localhost:8080/phpmyadmin
. Wenn ich /
am Ende der Adressen ein a hinzufüge, erhalte ich stattdessen den Fehlerstatus 500 .
(*) mit Wireshark erfasst. Wenn ich netcat vom Terminal auf demselben Host verwende, erhalte ich eine 301-Umleitung an eine andere Adresse .
Die Umgebung ist eine VM, die ich zu Entwicklungs- / Testzwecken erstellt habe und in der ich eine LEMP-Umgebung (Linux / Nginx / MySQL / PHP) installiert habe . Es ist eine Neuinstallation von CentOS 6 64bit, die als Gast auf einem Ubuntu 12.04 64bit Host ausgeführt wird. Die VM wird im NAT-Modus mit Portweiterleitung ausgeführt. Ich kann http://localhost:8080
auf dem Gastcomputer öffnen und die Nginx-Begrüßungsseite sehen. Ich kann auch eine phpinfo-Seite öffnen , damit ich weiß, dass PHP läuft.
Ich habe die Pakete nginx, MySQM, PHP und phpMyAdmin jeweils separat installiert. Ich verwende die Standardeinstellungen für phpMyAdmin. Nach der Installation von MySQL habe ich den mysql_secure_installation
Befehl ausgeführt und unter anderem den Remote-Root-Zugriff deaktiviert.
Hier sind meine Konfigurationsdateien:
quelle
Antworten:
Es gab mehrere Ursachen, die mich daran hinderten, mich bei phpMyAdmin anzumelden:
mbstring
Der Fehler 500 erzeugt eine Nachricht
PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177
in der Datei/var/log/php-fpm/www-error.log
. Laut einem Kommentar auf http://www.php.net/manual/en/mbstring.installation.php habe ich versucht, dasphp-mbstring
Paket zu installieren , aber es war bereits vorhanden.Durch Neustart wurde
php-fpm service
der Fehler 500 behoben.PHP-Sitzungen
Nachdem ich den vorherigen Fehler behoben hatte, wurde der folgende Fehler angezeigt:
/etc/phpmyadmin/config.inc.php
hatte die LeitungDie
session.save_path
Variable von PHP wird jedoch auf den nicht vorhandenen/var/lib/php/session
Ordner gesetzt.Das Erstellen eines Ordners mit den richtigen Berechtigungen hat diesen Fehler behoben. Ich kann mich ordnungsgemäß anmelden.
nachfolgende Schrägstrichumleitung
Wenn ich versuche, auf eine Adresse auf diesem Server ohne einen abschließenden Schrägstrich am Ende der URL zuzugreifen, fügt nginx einen abschließenden Schrägstrich hinzu und entfernt seinen
:8080
Teil. Es passiert nicht, wenn ich den abschließenden Schrägstrich verlasse.(zB:
http://localhost:8080/example
wird umgeleitet zuhttp://localhost/example/
. Die Tatsache, dass phpMyAdmin sowohl auf der VM als auch auf dem Host-Computer ausgeführt wird, hat mehr Verwirrung gestiftet, da ich den Anmeldedialog von phpMyAdmin sehen würde, aber am falschen Ziel).Es scheint ein häufiger Nginx-Fehler zu sein . Ich habe verschiedene Lösungen ohne Erfolg gegoogelt und ausprobiert. Wenn ich eine Lösung für meinen Fall finde, werde ich diese Antwort aktualisieren.
quelle
Root-Anmeldungen müssen in der
/etc/phpmyadmin/config.inc.php
Konfigurationsdatei zulässig sein .Fügen Sie die folgende Zeile hinzu:
quelle
true
. Ich habe es nicht auf false gesetzt und es ist nicht in der Konfigurationsdatei vorhanden.Überprüfen Sie Ihre, um
/var/log/nginx/error.log
zu sehen, was der Fehler 500 sagt.Es sieht so aus, als würden Sie zwei Konfigurationen ausführen (eine auf Port 80 und eine auf 8080), die zu Konflikten führen können.
quelle