ホームページ  >  記事  >  nginx+phpの構成と原理

nginx+phpの構成と原理

无忌哥哥
无忌哥哥オリジナル
2018-06-27 15:17:541802ブラウズ

Webサーバーアーキテクチャモデルとしてnginx+phpを使用し、現在広く使用されています。ただし、実現する必要がある最初のステップは、nginx が php を正しく呼び出す方法です。 nginx による PHP の呼び出しは静的ファイルの呼び出しほど単純ではないため、PHP スクリプトを動的に実行する必要があります。したがって、これには nginx.conf ファイルの構成が関係します。初心者の場合、この手順では通常、オンラインで情報を検索する必要があります。一般の退役軍人にとって、多くの学生はなぜそのような設定が必要なのかを理解していません。この記事の主な内容は、nginx サーバーで php 呼び出しメソッドを正しく設定する方法と、設定の基本原則です。

1. nginx+phpの動作原理:

まず、nginx+phpの原理について簡単に説明します。

1. nginxのワーカープロセス。 nginx ネットワーク ask への各リクエストを管理します。

2. PHP の場合、PHP はネットワークリクエストプロセス全体において CGI プログラムの役割を果たすため、これらのリクエストされた PHP プログラムを管理するために php-fpm と呼ばれるプロセス管理プログラムが使用されます。 php-fpm プログラムは、nginx と同様、ポートでリッスンし、マスター プロセスとワーカー プロセスを持つ必要があります。ワーカー プロセスは各 PHP プロセスを直接管理します。

3. fastcgi について: fastcgi は CGI プロセスを管理するプロセス マネージャーです。市場には fastcgi 関数を実装したプロセス マネージャーが数多くあり、php-fpm もその 1 つです。もう 1 つ、php-fpm は高速 CGI プロセス管理サービスとして、ポートをリッスンします。通常、デフォルトでポート 9000 をリッスンし、ローカル マシンを監視します。つまり、ローカル マシンからのポート要求のみを受け取ります。ローカルマシンなので、通常はコマンド netstat -nlpt|grep php-fpm を入力します。

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1057/php-fpm

ここでの 127.0.0.1:9000は、このマシンの 9000 ポートをリッスンすることを意味します。

4. fastcgi 設定ファイルについては、現在、fastcgi 設定ファイルは通常 nginx.conf と同じディレクトリに配置されます。通常、fastcgi.conf と fastcgi_params の 2 種類の設定ファイルがあります。 nginx のバージョンが異なれば、設定ファイルも異なります。これら 2 つの設定ファイルには非常に重要な違いがあります。fastcgi_parames ファイルには次の設定がありません:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_parames ファイルを開いて追加できます。または、構成が使用される場所に動的に追加できます。この設定を有効にします。

5. php リクエストを処理する必要がある場合、nginx のワーカー プロセスはリクエストを php-fpm のワーカー プロセスに渡して処理します。つまり、厳密には nginx は最初に php を呼び出します。つまり、nginx は php を間接的に呼び出します。

上記の 5 つの簡単な原則を理解すると、nginx での php 呼び出しメソッドの構成が簡単になります。

2. 設定ファイル:

php スクリプトを正常に起動できる最も単純な nginx vhost 設定を次に示します。つまり、独立したサーバー

2 を表します。 listen 8011: 8011 ポート

3 をリッスンするサーバーを表します。 location ~ .php?.*${ }: に使用される、対応する URI と一致する場所を表します。 URI のタイプを照合し、一致した URI リクエストに対してカスタマイズされたロジックと構成を作成します。ここでの場所は、.php を含むすべての URI リクエストと一致します。例: http://192.168.244.128:8011/test.php/asdasd http://192.168.244.128:8011/index.php など。

4、root /share/test: リソースのルート ディレクトリを要求し、その場所に一致する URI に /share/teset フォルダーに移動して同じ名前のリソースを見つけるように指示します。

5. fastcgi_pass 127.0.0.1:9000: この行の先頭がこの記事の焦点です。このコード行は、その場所に入る URI リクエストが CGI プログラムとみなされ、リクエストがポート 9000 に送信されることを意味します。 php-fpm によって処理されます。

6. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; : この設定行は、fastcgi 設定の行を動的に追加し、設定内容は SCRIPT_FILENAME であり、管理プロセスに CGI スクリプト名を通知することを意味します。私のnginxにはfastcgi_paramsファイルのみがあり、fastcgi.confファイルはないため、php-fpmがSCRIPT_FILENAMEの特定の値を認識するには、この設定行を動的に追加する必要があります。

7. fastcgi_params; fastcgi 設定ファイルを導入します

上記は、nginx 起動 php スクリプト設定の最も単純なバージョンです。nginx を再起動した後、/share/test ディレクトリに xx.php ファイルを作成します。 ; ?php echo "hello world"; ?>保存し、ブラウザで localhost:8011/xx.php にアクセスして、Web ページに hello world を表示します。

3. 概要:

実際、phpなどのCGIスクリプトプログラムを呼び出すには、最初に述べた5つの原則を理解して、5~7行の設定説明を組み合わせることで、次のことが可能になります。これが設定される理由を明確に理解します。初心者にとっては、fastcgi および php-fpm CGI プログラムをランダムに構成し、その原理を深く掘り下げることなくオンラインで実行することに混乱することがよくあります。ですので、ここに書いたことが読者の方にとって少しでもお役に立てれば幸いです。

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