Não consigo abrir o phpMyAdmin, recebo o erro 301 ou 500


8

Instalei o phpMyAdmin, mas não consigo abri-lo em nenhum navegador: recebo um redirecionamento 301 (*) se procurar http://localhost:8080/phpmyadmin. Se eu adicionar um /no final dos endereços, recebo um status de erro 500 .

(*) capturado usando o Wireshark. Se eu usar o netcat do terminal no mesmo host, recebo um redirecionamento 301 para um endereço diferente .

O ambiente é uma VM que construí para fins de desenvolvimento / teste, onde instalei um ambiente LEMP (Linux / Nginx / MySQL / PHP). É uma instalação limpa do CentOS 6 64bit executando como convidado em um host Ubuntu 12.04 64bit. A VM está sendo executada no modo NAT com encaminhamento de porta. Posso abrir http://localhost:8080na máquina convidada e ver a página de boas-vindas do nginx. Também posso abrir uma página phpinfo , então sei que o PHP está sendo executado.

Instalei os pacotes nginx, MySQM, PHP e phpMyAdmin, cada um separadamente. Estou usando as configurações padrão do phpMyAdmin. Após instalar o MySQL, executei o mysql_secure_installationcomando e, entre outras opções, desabilitei o acesso root remoto.

Aqui estão meus arquivos de configuração:

  • /etc/php.ini: link
  • /etc/php.d/mysql.ini: link
  • /etc/nginx/nginx.conf: link
  • /etc/nginx/conf.d/default.conf: link (para executar scripts PHP, eu o personalizei, seguindo tutoriais on-line e não tenho muita certeza do que estava fazendo .)
  • /etc/phpMyAdmin/config.inc.php: link

4
Esta pergunta teve 4 votos a fechar. Por quê? meta.superuser.com/questions/6455/…
aquele brasileiro

Respostas:


4

Existem várias causas que me impedem de acessar o phpMyAdmin:

mbstring

O erro 500 gera uma mensagem PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177no arquivo /var/log/php-fpm/www-error.log. De acordo com um comentário em http://www.php.net/manual/en/mbstring.installation.php , tentei instalar o php-mbstringpacote, mas ele já estava presente.

Reiniciando o php-fpm serviceresolvido o erro 500.

sessões php

Depois de resolver o erro anterior, recebi o seguinte erro:

insira a descrição da imagem aqui

/etc/phpmyadmin/config.inc.php teve a linha

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

mas a session.save_pathvariável do PHP está definida para a /var/lib/php/sessionpasta inexistente .

Criando uma pasta com permissões apropriadas resolveu esse erro, posso fazer o login corretamente.

redirecionamento de barra final

Se eu tentar acessar qualquer endereço neste servidor sem uma barra final no final da URL, o nginx adicionará uma barra final e removerá sua :8080parte. Não acontece se eu deixar a barra à direita.

(ex .: http://localhost:8080/exampleserá redirecionado para http://localhost/example/. O fato de eu ter phpMyAdmin correndo tanto na VM e na máquina host acrescentou mais confusão como eu iria ver o diálogo de login phpMyAdmin, mas o destino errado).

Parece ser um erro comum do nginx . Pesquisei no Google e tentei várias soluções sem sucesso. Se eu encontrar uma solução para o meu caso, atualizarei esta resposta.


0

Logins raiz devem ser permitidos no /etc/phpmyadmin/config.inc.phparquivo de configuração.

Adicione a seguinte linha:

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


3
Olá e bem-vindo ao SuperUser. reserve um tempo explicando a sintaxe e os detalhes sobre o desempenho dessas linhas de comando. pode ser relevante para futuros leitores ou para o próprio QA.
Lorenzo Von Matterhorn

Não consigo nem ver a tela de login do phpmyadmin. Eu adicionei a linha ao arquivo cfg, mas não resolveu o problema.
Aquele cara brasileiro

docs.phpmyadmin.net/en/latest/config.html afirma que o valor padrão é true. Eu não o configurei como false e não está presente no arquivo de configuração.
Aquele cara brasileiro

0

Verifique seu /var/log/nginx/error.logpara ver o que o erro 500 diz.

Parece que você está executando duas configurações (uma na porta 80 e outra na 8080) que podem estar em conflito.


Não estou executando duas configurações de servidor da web na mesma máquina. 8080 é uma porta de redirecionamento NAT para a VM convidada e 80 é a porta para o SO host. Tecnicamente, eles estão na mesma máquina, mas virtualizados um do outro.
Aquele cara brasileiro 14/03

Sua sugestão para procurar arquivos de log, no entanto, me colocou na direção certa.
Aquele cara brasileiro 14/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.