Ich kann phpMyAdmin nicht öffnen und erhalte den Fehler 301 oder 500

8

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:8080auf 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_installationBefehl ausgeführt und unter anderem den Remote-Root-Zugriff deaktiviert.

Hier sind meine Konfigurationsdateien:

  • /etc/php.ini: Link
  • /etc/php.d/mysql.ini: Link
  • /etc/nginx/nginx.conf: Link
  • /etc/nginx/conf.d/default.conf: link (Um PHP-Skripte auszuführen, habe ich sie gemäß den Online-Tutorials angepasst und bin mir nicht sicher, was ich getan habe .)
  • /etc/phpMyAdmin/config.inc.php: Link
Dieser Brasilianer
quelle
4
Diese Frage erhielt 4 Stimmen zum Abschluss. Warum? meta.superuser.com/questions/6455/…
Dieser Brasilianer

Antworten:

4

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 177in 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, das php-mbstringPaket zu installieren , aber es war bereits vorhanden.

Durch Neustart wurde php-fpm serviceder Fehler 500 behoben.

PHP-Sitzungen

Nachdem ich den vorherigen Fehler behoben hatte, wurde der folgende Fehler angezeigt:

Geben Sie hier die Bildbeschreibung ein

/etc/phpmyadmin/config.inc.php hatte die Leitung

$ cfg ['Server'] [$ i] ['auth_type'] = 'Cookie';

Die session.save_pathVariable von PHP wird jedoch auf den nicht vorhandenen /var/lib/php/sessionOrdner 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 :8080Teil. Es passiert nicht, wenn ich den abschließenden Schrägstrich verlasse.

(zB: http://localhost:8080/examplewird umgeleitet zu http://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.

Dieser Brasilianer
quelle
0

Root-Anmeldungen müssen in der /etc/phpmyadmin/config.inc.phpKonfigurationsdatei zulässig sein .

Fügen Sie die folgende Zeile hinzu:

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

Pbarney8
quelle
3
Hallo und willkommen bei SuperUser. Bitte nehmen Sie sich etwas Zeit, um die Syntax und Details zur Ausführung dieser Befehlszeilen zu erläutern. Dies kann für zukünftige Leser oder für die Qualitätssicherung selbst relevant sein.
Lorenzo Von Matterhorn
Ich kann nicht einmal den Anmeldebildschirm von phpmyadmin sehen. Ich habe die Zeile zur cfg-Datei hinzugefügt, aber das Problem wurde dadurch nicht behoben.
Dieser Brasilianer
docs.phpmyadmin.net/en/latest/config.html gibt den Standardwert an true. Ich habe es nicht auf false gesetzt und es ist nicht in der Konfigurationsdatei vorhanden.
Dieser Brasilianer
0

Überprüfen Sie Ihre, um /var/log/nginx/error.logzu 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.

Kevin
quelle
Ich führe nicht zwei Webserverkonfigurationen auf demselben Computer aus. 8080 ist ein NAT-Umleitungsport für die Gast-VM und 80 ist der Port für das Host-Betriebssystem. Technisch gesehen befinden sie sich auf demselben Computer, sind jedoch voneinander virtualisiert.
Dieser Brasilianer
Ihr Vorschlag, nach Protokolldateien zu suchen, hat mich jedoch in die richtige Richtung gebracht.
Dieser Brasilianer