Non riesco ad aprire phpMyAdmin, ottengo l'errore 301 o 500


8

Ho installato phpMyAdmin, ma non riesco ad aprirlo su nessun browser: ottengo un reindirizzamento 301 (*) se sfoglio http://localhost:8080/phpmyadmin. Se aggiungo /a alla fine degli indirizzi, ottengo invece uno stato di errore 500 .

(*) catturato con Wireshark. Se utilizzo netcat dal terminale sullo stesso host, ottengo un reindirizzamento 301 a un indirizzo diverso .

L'ambiente è una macchina virtuale che ho creato per scopi di sviluppo / test, in cui ho installato un ambiente LEMP (Linux / Nginx / MySQL / PHP). È un'installazione pulita di CentOS 6 a 64 bit in esecuzione come ospite su un host Ubuntu 12.04 a 64 bit. La VM è in esecuzione in modalità NAT con port forwarding. Posso aprire http://localhost:8080sulla macchina ospite e vedere la pagina di benvenuto di nginx. Posso anche aprire una pagina phpinfo , quindi so che PHP è in esecuzione.

Ho installato i pacchetti nginx, MySQM, PHP e phpMyAdmin separatamente. Sto usando le impostazioni predefinite per phpMyAdmin. Dopo aver installato MySQL, ho eseguito il mysql_secure_installationcomando e, tra le altre opzioni, ho disabilitato l'accesso root remoto.

Ecco i miei file di configurazione:

  • /etc/php.ini: link
  • /etc/php.d/mysql.ini: link
  • /etc/nginx/nginx.conf: link
  • /etc/nginx/conf.d/default.conf: link (Per eseguire script PHP, l'ho personalizzato, seguendo tutorial online, e non sono sicuro di quello che stavo facendo .)
  • /etc/phpMyAdmin/config.inc.php: link

4
Questa domanda ha ottenuto 4 voti da chiudere. Perché? meta.superuser.com/questions/6455/…
Quel ragazzo brasiliano

Risposte:


4

Ci sono state diverse cause che mi impedivano di accedere a phpMyAdmin:

mbstring

L'errore 500 genera un messaggio PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177sul file /var/log/php-fpm/www-error.log. Secondo un commento su http://www.php.net/manual/en/mbstring.installation.php ho provato ad installare il php-mbstringpacchetto ma era già presente.

Riavviando il php-fpm servicerisolto l'errore 500.

sessioni php

Dopo aver risolto l'errore precedente, ho ottenuto il seguente errore:

inserisci qui la descrizione dell'immagine

/etc/phpmyadmin/config.inc.php aveva la linea

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

ma la session.save_pathvariabile di PHP è impostata sulla /var/lib/php/sessioncartella inesistente .

La creazione di una cartella con le autorizzazioni appropriate ha risolto questo errore, posso accedere correttamente.

reindirizzamento barra finale

Se provo ad accedere a qualsiasi indirizzo su questo server senza una barra finale alla fine dell'URL, nginx sta aggiungendo una barra finale e ne rimuove la :8080parte. Non succede se lascio la barra finale.

(es .: http://localhost:8080/exampleviene reindirizzato a http://localhost/example/. Il fatto che phpMyAdmin sia in esecuzione sia nella VM che nella macchina host ha aggiunto maggiore confusione visto che vedrei la finestra di login phpMyAdmin, ma sulla destinazione sbagliata).

Sembra essere un errore nginx comune . Ho cercato su Google e ho provato varie soluzioni senza successo. Se trovo una soluzione per il mio caso, aggiornerò questa risposta.


0

Gli accessi root devono essere consentiti nel /etc/phpmyadmin/config.inc.phpfile di configurazione.

Aggiungi la seguente riga:

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


3
ciao e benvenuto su SuperUser. ti preghiamo di dedicare un po 'di tempo alla spiegazione della sintassi e ai dettagli su ciò che queste righe di comando eseguiranno. può essere rilevante per i futuri lettori o per lo stesso QA.
Lorenzo Von Matterhorn,

Non riesco nemmeno a vedere la schermata di accesso di phpmyadmin. Ho aggiunto la linea al file cfg, ma non ha risolto il problema.
Quel ragazzo brasiliano l'

docs.phpmyadmin.net/en/latest/config.html afferma che il valore predefinito è true. Non l'ho impostato su false e non è presente nel file di configurazione.
Quel ragazzo brasiliano,

0

Controlla il tuo /var/log/nginx/error.logper vedere cosa dice l'errore 500.

Sembra che tu stia eseguendo due configurazioni (una sulla porta 80 e l'altra sulla 8080) che potrebbero essere in conflitto.


Non eseguo due configurazioni di server web sulla stessa macchina. 8080 è una porta di reindirizzamento NAT per la VM guest e 80 è la porta per il sistema operativo host. Tecnicamente, sono sulla stessa macchina, ma virtualizzati l'uno dall'altro.
Quel ragazzo brasiliano,

Il tuo suggerimento per la ricerca di file di registro, tuttavia, mi ha messo nella giusta direzione.
Quel ragazzo brasiliano,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.