phpMyAdmin을 열 수 없습니다. 301 또는 500 오류가 발생합니다. . VM이

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명령 을 실행했으며 다른 옵션 중에서 원격 루트 액세스를 비활성화했습니다.

내 구성 파일은 다음과 같습니다.

  • /etc/php.ini: 링크
  • /etc/php.d/mysql.ini: 링크
  • /etc/nginx/nginx.conf: 링크
  • /etc/nginx/conf.d/default.conf: link (PHP 스크립트를 실행하기 위해 온라인 자습서에 따라 스크립트를 사용자 정의했으며 실제로 내가하고있는 일이 확실하지 않습니다 .)
  • /etc/phpMyAdmin/config.inc.php: 링크


답변

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)을 실행중인 것 같습니다.


답변