ホームページ バックエンド開発 PHPチュートリアル Nginx と PHP のインストール、構成、最適化 (FastCGI)_PHP チュートリアル

Nginx と PHP のインストール、構成、最適化 (FastCGI)_PHP チュートリアル

Jul 13, 2016 am 10:32 AM

FastCGI の概要と動作原理

まず、FastCGI について簡単に紹介します。
FastCGI は、言語に依存しないスケーラブルな構造の CGI オープン拡張機能であり、その主な動作は CGI インタープリターをメモリ内に保持し、より高いパフォーマンスを実現することです。ご存知のとおり、CGI インタープリタの繰り返しロードが CGI パフォーマンス低下の主な原因です。CGI インタープリタがメモリ内に残り、FastCGI プロセス マネージャーのスケジューリングを受け入れる場合、良好なパフォーマンス、スケーラビリティ、フェイルオーバー機能などが提供されます。
FastCGI の仕組み:
(1) FastCGI プロセスマネージャーは自身を初期化し、複数の CGI インタプリタプロセス (複数の php-cgi プロセス) を起動し、Web サーバーからの接続を待ちます。本文では、PHP-FPM プロセス マネージャーを使用して、複数の php-cgi FastCGI プロセスを開始します。 php-cgi FastCGI プロセスを開始するとき、TCP と UNIX ソケットの 2 つの方法で開始するように構成できます。
(2) クライアントリクエストがWebサーバー(Nginx)に到達すると、WebサーバーはTCPプロトコルまたはUNIXソケットメソッドを使用してリクエストをFastCGIメインプロセスに転送し、FastCGIメインプロセスはCGIインタプリタ(子プロセス)を選択して接続します。 )。 Web サーバーは、CGI 環境変数と標準入力を FastCGI 子プロセス php-cgi に送信します。
(3) FastCGIサブプロセスは処理完了後、同じ接続からWebサーバー(Nginx)に標準出力とエラー情報を返します。 FastCGI 子プロセスが接続を閉じると、リクエストには処理が完了したことが通知されます。次に、FastCGI 子プロセスは、FastCGI プロセス管理からの次の接続を待機して処理します。通常の CGI モードでは、php-cgi はここで終了します。
PHP-FPM
PHP-FPM は、PHP でのみ使用される PHP FastCGI マネージャーであり、http://cn2.php.net/downloads.php からダウンロードできます。実際には、PHP ソース コードのパッチです。 FastCGI プロセス管理を PHP パッケージに統合します。 PHP ソース コードにパッチを適用する必要があり、PHP をコンパイルしてインストールした後に使用できるようになります。
新しいバージョンの PHP には、サードパーティのパッケージではなくなった php-fpm が統合されています。これを使用することをお勧めします。 PHP-FPM は、メモリとプロセスを効果的に制御し、PHP 設定をスムーズにリロードできる、より優れた PHP プロセス管理方法を提供します。そのため、spawn-fcgi よりも多くの利点があるため、PHP に正式に組み込まれています。 ./configure の –enable-fpm パラメータを使用して PHP-FPM をオンにできます。その他のパラメータは php 用に設定されます。オプションの具体的な意味については、こちらをご覧ください。
インストール前の準備:
yum -y install gcc automake autoconf libtool make
yum -y install gcc gcc-c++ glibc
yum -y install libmcrypt-devel mhash-devel libxslt-devel
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel
ncurses ncurses-develcurlcurses-devel e2fsprogs e2fsprogs-devel
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
新バージョンのphp-fpmインストール(推奨インストール方法)
wget http://us1.php.net/get/php-5.5.10.tar.gz/from/this/mirror
tar zvxf php-5.5.10.tar.gz
cdphp-5.5.10
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt
--enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath
--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli
--gd --with-jpeg-dir
すべてインストールする
php-fpm の完了後、実行ユーザーを設定します。
cd /usr/local/php
cp etc/php-fpm.conf.default etc/php-fpm.conf
vi etc/php-fpm.conf
変更:
ユーザー = nginx
グループ = nginx
nginxユーザーが存在しない場合は、最初にnginxユーザーを追加してください
グループ追加nginx
useradd -g nginx nginx
php-fpmをサポートするようにnginx設定ファイルを変更します
# 127.0.0.1:9000 をリッスンする FastCGI サーバーに PHP スクリプトを渡します
場所 ~ .php$ {
ルート HTML;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_params を含める;
}
テスト用phpファイルを作成する
/usr/local/nginx/html にindex.php ファイルを作成し、次の内容を入力します
<?php
echo phpinfo();
?>
php-fpmとnginxを起動します
1
2
/usr/local/php/sbin/php-fpm
/usr/local/nginx/nginx

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/755758.html技術記事 FastCGI の概要と動作原理 まず、FastCGI について簡単に紹介します。 FastCGI は、言語に依存しないスケーラブルな構造の CGI オープン拡張機能であり、その主な動作は CGI インタプリタをメモリ内に保持することです...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

11ベストPHP URLショートナースクリプト(無料およびプレミアム)

Instagram APIの紹介 Instagram APIの紹介 Mar 02, 2025 am 09:32 AM

Instagram APIの紹介

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelでフラッシュセッションデータを使用します

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

LaravelのバックエンドでReactアプリを構築する:パート2、React

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelテストでの簡略化されたHTTP応答のモッキング

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPのカール:REST APIでPHPカール拡張機能を使用する方法

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

Codecanyonで12の最高のPHPチャットスクリプト

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

Laravelの通知

See all articles