phpMyAdmin을 설치했지만 브라우저에서 열 수 없습니다.으로 이동하면 301 리디렉션 (*)이 표시됩니다 http://localhost:8080/phpmyadmin
. /
addres 끝에 a 를 추가하면 대신 500 오류 상태가 표시됩니다 .
(*) Wireshark를 사용하여 캡처했습니다. 동일한 호스트의 터미널에서 netcat을 사용 하면 301이 다른 주소로 리디렉션됩니다 .
환경은 개발 / 테스트 목적으로 빌드 한 VM이며 LEMP (Linux / Nginx / MySQL / PHP) 환경을 설치했습니다. Ubuntu 12.04 64 비트 호스트에서 게스트로 실행되는 CentOS 6 64 비트를 새로 설치했습니다 . VM이 포트 전달을 통해 NAT 모드에서 실행 중입니다. http://localhost:8080
게스트 컴퓨터에서 열어 nginx 시작 페이지를 볼 수 있습니다 . phpinfo 페이지 도 열 수 있으므로 PHP가 실행되고 있음을 알고 있습니다.
nginx, MySQM, PHP 및 phpMyAdmin 패키지를 각각 별도로 설치했습니다. phpMyAdmin의 기본 설정을 사용하고 있습니다. MySQL을 설치 한 후 mysql_secure_installation
명령 을 실행했으며 다른 옵션 중에서 원격 루트 액세스를 비활성화했습니다.
내 구성 파일은 다음과 같습니다.
답변
phpMyAdmin에 로그인하지 못하게하는 여러 가지 원인이 있습니다.
mbstring
오류 500 PHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177
은 파일 에서 메시지 를 생성 합니다 /var/log/php-fpm/www-error.log
. http://www.php.net/manual/en/mbstring.installation.php 에 대한 의견에 따르면 php-mbstring
패키지 를 설치하려고했지만 이미 존재했습니다.
다시 시작하면 php-fpm service
오류 500 이 해결되었습니다.
PHP 세션
이전 오류를 해결 한 후 다음 오류가 발생했습니다.
/etc/phpmyadmin/config.inc.php
라인을했다
$ cfg [ ‘서버’] [$ i] [ ‘auth_type’] = ‘쿠키’;
그러나 PHP의 session.save_path
변수는 존재하지 않는 /var/lib/php/session
폴더로 설정되어 있습니다.
적절한 권한이있는 폴더를 생성하면이 오류가 해결되어 올바르게 로그인 할 수 있습니다.
후행 슬래시 리디렉션
내가 ACESS하려고하면 어떤 URL의 끝에 슬래시없이이 서버의 주소를 nginx를 후행 슬래시를 추가 하고 그 제거 :8080
부분을. 후행 슬래시를 남겨두면 발생하지 않습니다.
(예 : : http://localhost:8080/example
로 리디렉션됩니다 http://localhost/example/
. phpMyAdmin 로그인 대화 상자가 표시되지만 잘못된 대상에서 VM과 호스트 컴퓨터에서 phpMyAdmin을 실행 하고 있다는 사실이 더 혼란 스럽습니다.)
일반적인 nginx 오류 인 것 같습니다 . 나는 구글을 성공시키지 않고 다양한 솔루션을 시도했다. 내 사례에 대한 해결책을 찾으면이 답변을 업데이트 할 것입니다.
답변
/etc/phpmyadmin/config.inc.php
구성 파일 에서 루트 로그인이 허용되어야 합니다.
다음 줄을 추가하십시오.
$ cfg [ ‘서버’] [$ i] [ ‘AllowRoot’] = 참;
답변
/var/log/nginx/error.log
오류 500의 내용을 확인하십시오 .
충돌 할 수있는 두 가지 구성 (포트 80 및 포트 8080)을 실행중인 것 같습니다.