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


8

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: 링크

4
이 질문은 4 표로 마감되었습니다. 왜? meta.superuser.com/questions/6455/…
그 브라질 사람

답변:


4

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 오류 인 것 같습니다 . 나는 구글을 성공시키지 않고 다양한 솔루션을 시도했다. 내 사례에 대한 해결책을 찾으면이 답변을 업데이트 할 것입니다.


0

/etc/phpmyadmin/config.inc.php구성 파일 에서 루트 로그인이 허용되어야 합니다.

다음 줄을 추가하십시오.

$ cfg [ '서버'] [$ i] [ 'AllowRoot'] = 참;


3
안녕하세요, 수퍼 유저입니다. 해당 명령 행이 수행하는 작업에 대한 구문 및 세부 사항을 설명하는 데 시간이 걸립니다. 향후 독자 또는 QA와 관련이있을 수 있습니다.
Lorenzo Von Matterhorn

phpmyadmin 로그인 화면도 볼 수 없습니다. cfg 파일에 줄을 추가했지만 문제가 해결되지 않았습니다.
그 브라질 사람

docs.phpmyadmin.net/en/latest/config.html 은 기본값이 true입니다. 나는 그것을 false로 설정하지 않았으며 구성 파일에 없습니다.
그 브라질 사람

0

/var/log/nginx/error.log오류 500의 내용을 확인하십시오 .

충돌 할 수있는 두 가지 구성 (포트 80 및 포트 8080)을 실행중인 것 같습니다.


동일한 컴퓨터에서 두 개의 웹 서버 구성을 실행하고 있지 않습니다. 8080은 게스트 VM의 NAT 리디렉션 포트이고 80은 호스트 OS의 포트입니다. 기술적으로 이들은 동일한 시스템에 있지만 서로 가상화되어 있습니다.
그 브라질 사람

그러나 로그 파일을 찾겠다는 당신의 제안은 나를 올바른 방향으로 이끌었습니다.
그 브라질 사람
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.