web-dev-qa-db-ja.com

phpMyAdminを開くことができず、エラー301または500が発生します

PhpMyAdminをインストールしましたが、どのブラウザでも開くことができません: 1リダイレクトを取得します (*)http://localhost:8080/phpmyadminを参照すると。アドレスの末尾に/を追加すると、代わりに500エラーステータスが表示されます

(*)Wiresharkを使用してキャプチャされました。同じホスト上の端末からnetcatを使用すると、 1リダイレクトからdifferentアドレス

環境はVM開発/テスト目的で構築しました。ここに [〜#〜] lemp [〜#〜] (Linux/Nginx/MySQL/PHP)環境。これは CentOS 664ビットのクリーンインストールです。Ubuntu12.0464ビットホストでゲストとして実行されます。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.conflink (PHPスクリプトを実行するために、オンラインチュートリアルに従ってカスタマイズし、I ' m私が何をしていたのかよくわかりません)。
  • /etc/phpMyAdmin/config.inc.phpリンク
8

PhpMyAdminへのログインを妨げる原因は複数ありました。

mbstring

エラー500は、ファイル_/var/log/php-fpm/www-error.log_にメッセージPHP Fatal error: Call to undefined function mb_detect_encoding() in /usr/share/php/gettext/gettext.inc on line 177を生成します。 http://www.php.net/manual/en/mbstring.installation.php に関するコメントによると、_php-mbstring_パッケージをインストールしようとしましたが、すでに存在していました。

_php-fpm service_を再起動すると、エラー500が解決しました。

phpセッション

前のエラーを解決した後、次のエラーが発生しました。

enter image description here

_/etc/phpmyadmin/config.inc.php_には行がありました

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

ただし、PHPの_session.save_path_変数は、存在しない_/var/lib/php/session_フォルダーに設定されています。

適切な権限でフォルダを作成すると、このエラーが解決しました。正しくログインできます。

末尾のスラッシュリダイレクト

URLの末尾にスラッシュを付けずにこのサーバーのanyアドレスにアクセスしようとすると、nginxは末尾のスラッシュおよびその_:8080_部分を削除します。末尾のスラッシュを残しても発生しません。

(例:_http://localhost:8080/example_は_http://localhost/example/_にリダイレクトされます。phpMyAdminを実行しているという事実both VMおよび追加されたホストマシンphpMyAdminログインダイアログが表示されるのでさらに混乱しますが、宛先が間違っています)。

一般的なnginxエラー のようです。私はグーグルでいろいろな解決策を試しましたが成功しませんでした。私の場合の解決策を見つけたら、この回答を更新します。

4

ルートログインは、/etc/phpmyadmin/config.inc.php構成ファイルで許可する必要があります。

次の行を追加します。

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

0
Pbarney8

/var/log/nginx/error.logをチェックして、エラー500の内容を確認してください。

競合する可能性のある2つの構成(1つはポート80で、もう1つは8080で)を実行しているようです。

0
kevin