ホームページ データベース PHPMyAdmin phpMyAdmin が nginx+php-fpm モードで使用できない場合はどうすればよいですか?

phpMyAdmin が nginx+php-fpm モードで使用できない場合はどうすればよいですか?

Dec 03, 2020 pm 02:34 PM
nginx php-fpm phpmyadmin

以下は、phpmyadmin##Using Tutorial ColumnphpMyAdmin によって紹介されています。解決策 は nginx php-fpm モードでは使用できません。困っている友人のお役に立てれば幸いです。

phpMyAdmin が nginx+php-fpm モードで使用できない場合はどうすればよいですか?

昨日ネチズンから質問を受け取りました。yum で nginx php-fpm mysql phpMyAdmin をインストールした後、それが見つかったというものです。 phpMyAdmin が開けないということで、私は長い間 502 エラーを報告していました。他人の幸せを助けるという原則に沿って、私はリモートでチェックするのを手伝いました。記録と概要は次のとおりです。問題の概要-解決アイデアは記事の最後にあり、問題解決アイデアの概要もこの記事に含まれています。

推奨: "

phpmyadmin 使用法チュートリアル"

問題環境: CentOS6 nginx php-fpm mysql phpMyAdmin## yum 経由でインストール

#問題の説明:

インストール完了後、nginx には問題がないことがわかりましたが、phpMyAdmin を開くことができず、502 エラーが表示されます

問題解決プロセス

問題の環境を表示する インストール パッケージ:

#nginx-filesystem-1.0.15-12.el6.noarch## php-pear-1.9.4- 4.el6.noarchphp-devel-5.3.3-46.el6_6.x86_64 php-mbstring-5.3.3- 46.el6_6.x86_64php-mcrypt-5.3.3-3.el6.x86_64php -5.3.3-46.el6_6.x86_64php-tidy-5.3.3-46.el6_6.x86_64php-pecl -memcache-3.0.5- 4.el6.x86_64php-xmlrpc-5.3.3-46.el6_6.x86_64php -xmlseclibs-1.3.1- 3.el6.noarchphp-common-5.3.3-46.el6_6.x86_64php -pdo-5.3.3- 46.el6_6.x86_64php-xml-5.3.3-46.el6_6.x86_64php- fpm-5.3.3- 46.el6_6.x86_64php-cli-5.3.3-46.el6_6.x86_64php-mysql -5.3.3- 46.el6_6.x86_64php-eaccelerator-0.9.6.1-1.el6.x86_64php-gd- 5.3.3- 46.el6_6.x86_64

nginx から報告された 502 エラーに基づいて、まずアップストリームに問題があると判断できます。アップストリームに言及する前に、nginx の設定ファイルを一覧表示します (コメントを削除します。nginx のエラー ログのレベルをレベル上げしました)デフォルトのレベルは情報です)。

user              nginx;   
worker_processes  1;
error_log  /var/log/nginx/error.log info;
pid        /var/run/nginx.pid;
events {   
    worker_connections  1024;    
}
http {   
    include       /etc/nginx/mime.types;    
    default_type  application/octet-stream;
    client_max_body_size 10M;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '   
                      '$status $body_bytes_sent "$http_referer" '    
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;   
    keepalive_timeout  65;  
    include /etc/nginx/conf.d/*.conf;
}
ログイン後にコピー

この設定ファイルにはサーバーが明示的に記述されていないため、 include /etc/nginx/conf.d/*.conf; に含まれるデフォルトのサーバー ファイル (/etc/nginx /) を確認する必要があります。 conf.d/default.conf のコメント

cat /etc/nginx/conf.d/default.conf    
server {    
    listen       80 default_server;    
    server_name  _;  
    include /etc/nginx/default.d/*.conf;
    location / {   
        root   /usr/share/nginx/html;    
        index  index.php index.html index.htm;    
    }
    error_page  404              /404.html;   
    location = /404.html {    
        root   /usr/share/nginx/html;    
    }  
    error_page   500 502 503 504  /50x.html;    
    location = /50x.html {    
        root   /usr/share/nginx/html;    
    }
     location ~ [^/]\.php(/|$) {   
                fastcgi_split_path_info ^(.+?\.php)(/.*)$;    
                if (!-f $document_root$fastcgi_script_name) {    
                        return 404;    
                }    
                fastcgi_pass 127.0.0.1:9000;    
                fastcgi_index index.php;    
                include fastcgi_params;    
     }    
}
ログイン後にコピー

を削除 暫定的な判断では、nginx の設定に問題はありませんが、php-fpm または php 自体に問題があるはずです (範囲を狭める)問題)。

nginx ログ ファイル (/var/log/nginx/error.log) を確認し、次のプロンプトを見つけます。これは間違いなく php-fpm の問題です。Fastcgi はアップストリームのプロキシとみなすこともできます

2015/08/14 17:05:32 [notice] 9645#0: using the "epoll" event method   
2015/08/14 17:05:32 [notice] 9645#0: nginx/1.0.15    
2015/08/14 17:05:32 [notice] 9645#0: built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)     
2015/08/14 17:05:32 [notice] 9645#0: OS: Linux 2.6.32-504.el6.x86_64    
2015/08/14 17:05:32 [notice] 9645#0: getrlimit(RLIMIT_NOFILE): 65535:65535    
2015/08/14 17:05:32 [notice] 9646#0: start worker processes    
2015/08/14 17:05:32 [notice] 9646#0: start worker process 9648    
2015/08/14 17:05:36 [error] 9648#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101"    
2015/08/14 17:09:22 [error] 9648#0: *4 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101"    
2015/08/14 17:11:23 [error] 9648#0: *7 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.1.228, server: 192.168.1.101, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "192.168.1.101"    
2015/08/14 17:11:33 [info] 9648#0: *9 client closed prematurely connection while reading client request line, client: 192.168.1.228, server: 192.168.1.101
ログイン後にコピー

phpinfo を開くことができるファイルを作成し、php ファイルが正しく解析できるかどうかを確認します (問題の範囲をさらに絞り込みます)

php-fpm が正常に php ファイルを解析できることがわかりました。内部のすべての php コンポーネントは正常に表示されます

phpMyAdmin のバージョンを確認し、公式 Web サイトのドキュメントで php5.3.3 をサポートしているかどうかを確認し、現在の phpMyAdmin がそれをサポートしていることが判明したため、 phpMyAdmin の問題

php-fpm ログ (/var/log /php-fpm/error.log) のチェックを開始すると、次のことがわかりました:

[14-Aug-2015 16:34:53] NOTICE: fpm is running, pid 9522   
[14-Aug-2015 16:34:53] NOTICE: ready to handle connections    
[14-Aug-2015 16:43:54] WARNING: [pool www] child 9527 exited on signal 11 (SIGSEGV) after 541.401349 seconds from start    
[14-Aug-2015 16:43:55] NOTICE: [pool www] child 9614 started    
[14-Aug-2015 16:44:00] WARNING: [pool www] child 9526 exited on signal 11 (SIGSEGV) after 547.107407 seconds from start    
[14-Aug-2015 16:44:00] NOTICE: [pool www] child 9615 started    
[14-Aug-2015 17:05:36] WARNING: [pool www] child 9523 exited on signal 11 (SIGSEGV) after 1843.098829 seconds from start    
[14-Aug-2015 17:05:36] NOTICE: [pool www] child 9649 started
ログイン後にコピー

このログでは明らかに十分ではありません。問題を解決するには十分な情報があるため、php-fpm および php.ini 設定のログ レベルのいくつかのパラメーターを変更して、ログ レベルを上げ、詳細なエラー情報を取得します。

設定ファイルでログ キーワードを検索するか、ドキュメントまたは情報に従って変更します。いくつかの方法または手順は次のとおりです:

/etc/php-fpm.conf ファイル、ログレベルを Notice から変更します。 debug

log_level = debug
ログイン後にコピー

/etc/php-fpm.d/www.conf ファイルに移動し、php ワーカーの標準出力とエラー出力を /dev/null からメイン出力にリダイレクトします。エラー ログ: /var/ log/php-fpm/error.log

catch_workers_output = yes
ログイン後にコピー

/etc/php.ini file

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On
track_errors = On
html_errors = On
ログイン後にコピー

php-fpm を再起動し、ワーカーで詳細なエラーを見つけます。 :

[14-Aug-2015 17:09:18] NOTICE: fpm is running, pid 9672   
[14-Aug-2015 17:09:18] NOTICE: ready to handle connections    
[14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: "[Fri Aug 14 17:09:22 2015"    
[14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: "] [notice] EACCELERATOR(9673): PHP crashed on opline 30 of PMA_URL_getCommon() at /usr/share/nginx/html/libraries/url_generating.lib.php:188"    
[14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 said into stderr: ""    
[14-Aug-2015 17:09:22] WARNING: [pool www] child 9673 exited on signal 11 (SIGSEGV) after 4.286828 seconds from start    
[14-Aug-2015 17:09:22] NOTICE: [pool www] child 9679 started    
[14-Aug-2015 17:11:23] WARNING: [pool www] child 9675 said into stderr: "[Fri Aug 14 17:11:23 2015"    
[14-Aug-2015 17:11:23] WARNING: [pool www] child 9675 said into stderr: "] [notice] EACCELERATOR(9675): PHP crashed on opline 30 of PMA_URL_getCommon() at /usr/share/nginx/html/libraries/url_generating.lib.php:188"
ログイン後にコピー

エラー メッセージには EACCELERATOR PHP モジュールが記載されているため、まずこのモジュールに問題があるかどうかを確認してください。したがって、最初に /etc/php.d/eaccelerator のサフィックス名を変更してこのモジュールを無効にします.ini ファイルたとえば、mv /etc/php.d/eaccelerator.ini /etc/php.d/eaccelerator.ini~ と入力し、php-fpm を再起動して結果を再度確認すると、問題が解決していることがわかります。

eaccelerator が phpMyAdmin と競合する可能性があるため、phpMyAdmin を使用したい場合は、このモジュールを無効にするか、インストール中にこのパッケージをスキップしてください。

注: eAccelerator は、動的コンテンツ キャッシュを最適化し、PHP スクリプトのキャッシュ パフォーマンスを向上させ、コンパイルされた状態の PHP スクリプトのサーバー オーバーヘッドをほぼ完全に排除する、無料のオープンソース PHP アクセラレータです。また、スクリプトを最適化して実行効率を高速化します。 PHP プログラム コードの実行効率が 1 ~ 10 倍向上します。 (bdbk より)

問題解決アイデアのまとめ

第 0 条、障害診断の鍵となるのはコミュニケーションであり、導入などの問題を詳細に理解する計画、手順、実行された操作など。

まず、経験に基づいて、nginx php-fpm phpMyAdmin は非常に信頼できる組み合わせであるため、これは個人的な問題であり、問​​題ではないと判断します。バッチの問題があるため、直接開始しました。システムにログインして、インストールされているソフトウェア パッケージを確認します。nginx、php、phpMyAdmin のバージョンを確認する必要があります。このステップは、知識と経験に基づいて予備的な判断を下すのに役立ちます。互換性があるかどうか、未修正のバグがあるかどうかなど。

2 番目に、nginx -t を実行して、nginx 構成ファイルに明示的なエラーがあるかどうかを確認し、nginx の実行ステータスを確認します。

3 番目に、php-fpm -t を実行して構成ファイルを確認します。 php-fpm の明示的なエラーがある場合は、php-fpm

4 番目に、エラー ログを確認します。最初に nginx エラー ログを確認します (これは「最初のサイト」であるため)。 php-fpm ログを確認します。これは「2 番目のシーン」であるためです。

#5 番目に、ログ プロンプトが明らかな場合は、ログ プロンプトに従い、対応する構成ファイルを変更し、問題を再度確認します

6 番目に、まだ問題がある場合は、

このステップは、問題を解決するための最も重要なステップです。ログのレベルを上げる必要があります。これが、デバッグがデバッグと呼ばれる理由です。. 増やすnginx のログ レベルを情報にします (nginx をデバッグにアップグレードできない理由) コンパイル時に --debug オプションがあります (よくわからない場合は使用する必要はありません)。php ログ レベルをデバッグに上げ、すべての PHP デバッグ スイッチをオンにします。プロンプトをログに記録し、問題を再度確認してください

8 番目、修正を繰り返しても失敗する場合は、公式マニュアルを参照してください。公式マニュアルを参照してください。Google で検索する場合は、Google で検索してください。バグを報告する場合は、バグを報告してください。問題が解決しない場合は、別の方法で問題を解決し、正しい解決策を見つけてください。以下を参照してください:

既存の成功したバージョンの組み合わせを参照し、変更してください。バージョンの組み合わせを変更するか、構成ファイルを変更して環境の違いを排除します。これは問題を迅速に解決するのに適しています
  • yum インストールをコンパイル済みインストールに変更するか、yum でインストールするパッケージの数を減らして、最小限のインストール方法で問題の範囲を最小限に抑えることで、問題を特定し、問題を解決する能力を向上させます。研究や勉強に最適です。

最後に一言: 問題が再現でき、ランダムに表示されない限り、問題は確実にうまく解決されますので、やめないでください。パニックになったり、衝動的になったりしますが、諦めずにゆっくりと落ち着いて対処してください。 ###### - 終わり - ###

##nginx-1.0.15- 12.el6.x86_64
rrdtool-php-1.3.8-7.el6.x86_64

以上がphpMyAdmin が nginx+php-fpm モードで使用できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerによってコンテナを起動する方法 Dockerによってコンテナを起動する方法 Apr 15, 2025 pm 12:27 PM

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

WordPressの記事リストを調整する方法 WordPressの記事リストを調整する方法 Apr 20, 2025 am 10:48 AM

WordPressの記事リストを調整するには4つの方法があります。テーマオプションを使用し、プラグイン(投稿タイプの注文、WP投稿リスト、ボックスのものなど)を使用し、コード(functions.phpファイルに設定を追加)を使用するか、WordPressデータベースを直接変更します。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

Docker用のコンテナを作成する方法 Docker用のコンテナを作成する方法 Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

Nginxバージョンを確認する方法 Nginxバージョンを確認する方法 Apr 14, 2025 am 11:57 AM

nginxバージョンを照会できるメソッドは次のとおりです。nginx-vコマンドを使用します。 nginx.confファイルでバージョンディレクティブを表示します。 nginxエラーページを開き、ページタイトルを表示します。

nginxでクラウドサーバードメイン名を構成する方法 nginxでクラウドサーバードメイン名を構成する方法 Apr 14, 2025 pm 12:18 PM

クラウドサーバーでnginxドメイン名を構成する方法:クラウドサーバーのパブリックIPアドレスを指すレコードを作成します。 NGINX構成ファイルに仮想ホストブロックを追加し、リスニングポート、ドメイン名、およびWebサイトルートディレクトリを指定します。 nginxを再起動して変更を適用します。ドメイン名のテスト構成にアクセスします。その他のメモ:SSL証明書をインストールしてHTTPSを有効にし、ファイアウォールがポート80トラフィックを許可し、DNS解像度が有効になることを確認します。

See all articles