No puedo abrir phpMyAdmin, obtengo el error 301 o 500

8

He instalado phpMyAdmin, pero no puedo abrirlo en ningún navegador: obtengo una redirección 301 (*) si busco http://localhost:8080/phpmyadmin. Si agrego un /al final de las direcciones, obtengo un estado de error 500 en su lugar .

(*) capturado con Wireshark. Si uso netcat desde la terminal en el mismo host, obtengo una redirección 301 a una dirección diferente .

El entorno es una VM que he construido para fines de desarrollo / prueba, donde instalé un entorno LEMP (Linux / Nginx / MySQL / PHP). Es una instalación limpia de CentOS 6 de 64 bits que se ejecuta como invitado en un host Ubuntu 12.04 de 64 bits. La VM se ejecuta en modo NAT con reenvío de puertos. Puedo abrir http://localhost:8080en la máquina invitada y ver la página de bienvenida de nginx. También puedo abrir una página phpinfo , así que sé que PHP se está ejecutando.

He instalado los paquetes nginx, MySQM, PHP y phpMyAdmin cada uno por separado. Estoy usando la configuración predeterminada para phpMyAdmin. Después de instalar MySQL, ejecuté el mysql_secure_installationcomando y, entre otras opciones, deshabilité el acceso raíz remoto.

Aquí están mis archivos de configuración:

  • /etc/php.ini: enlace
  • /etc/php.d/mysql.ini: enlace
  • /etc/nginx/nginx.conf: enlace
  • /etc/nginx/conf.d/default.conf: enlace (para ejecutar scripts PHP, lo he personalizado, siguiendo los tutoriales en línea, y no estoy realmente seguro de lo que estaba haciendo ).
  • /etc/phpMyAdmin/config.inc.php: enlace
Ese chico brasileño
fuente
44
Esta pregunta obtuvo 4 votos para cerrar. ¿Por qué? meta.superuser.com/questions/6455/…
Ese tipo brasileño el

Respuestas:

4

Hubo múltiples causas que me impidieron iniciar sesión en phpMyAdmin:

mbstring

El error 500 genera un mensaje PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177en el archivo /var/log/php-fpm/www-error.log. Según un comentario en http://www.php.net/manual/en/mbstring.installation.php , intenté instalar el php-mbstringpaquete pero ya estaba presente.

Reiniciar el php-fpm serviceresuelto el error 500.

sesiones de php

Después de resolver el error anterior, recibí el siguiente error:

ingrese la descripción de la imagen aquí

/etc/phpmyadmin/config.inc.php tenía la línea

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

pero la session.save_pathvariable de PHP está configurada en la /var/lib/php/sessioncarpeta inexistente .

Crear una carpeta con los permisos adecuados resolvió este error, puedo iniciar sesión correctamente.

redirección de barra final

Si intento acceder a cualquier dirección en este servidor sin una barra diagonal final al final de la URL, nginx está agregando una barra diagonal final y eliminando su :8080parte. No sucede si dejo la barra diagonal final.

(por ejemplo: http://localhost:8080/examplese redirige a http://localhost/example/. El hecho de que tengo phpMyAdmin ejecutándose tanto en la VM como en la máquina host agregó más confusión ya que vería el cuadro de diálogo de inicio de sesión de phpMyAdmin, pero en el destino incorrecto).

Parece ser un error común de nginx . Busqué en Google y probé varias soluciones sin éxito. Si encuentro una solución para mi caso, actualizaré esta respuesta.

Ese chico brasileño
fuente
0

Los inicios de sesión raíz deben estar permitidos en el /etc/phpmyadmin/config.inc.phparchivo de configuración.

Agregue la siguiente línea:

$ cfg ['Servidores'] [$ i] ['AllowRoot'] = VERDADERO;

Pbarney8
fuente
3
hola y bienvenido a SuperUser. tómese un tiempo para explicar la sintaxis y los detalles sobre el rendimiento de esas líneas de comando. Puede ser relevante para futuros lectores o para el propio QA.
Lorenzo Von Matterhorn
Ni siquiera puedo ver la pantalla de inicio de sesión de phpmyadmin. Agregué la línea al archivo cfg, pero no solucionó el problema.
Ese brasileño
docs.phpmyadmin.net/en/latest/config.html establece que el valor predeterminado es true. No lo configuré como falso, y no está presente en el archivo de configuración.
Ese brasileño
0

Comprueba tu /var/log/nginx/error.logpara ver qué dice el error 500.

Parece que está ejecutando dos configuraciones (una en el puerto 80 y otra en 8080) que pueden entrar en conflicto.

Kevin
fuente
No estoy ejecutando dos configuraciones de servidor web en la misma máquina. 8080 es un puerto de redireccionamiento NAT para la VM invitada, y 80 es el puerto para el sistema operativo host. Técnicamente, están en la misma máquina, pero virtualizados entre sí.
Ese brasileño
Sin embargo, su sugerencia para buscar archivos de registro me ha llevado en la dirección correcta.
Ese brasileño