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 ファイルを作成し、次の内容を入力します
echo phpinfo();
?>
php-fpmとnginxを起動します
1
2
/usr/local/php/sbin/php-fpm
/usr/local/nginx/nginx
http://www.bkjia.com/PHPjc/755758.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/755758.html技術記事 FastCGI の概要と動作原理 まず、FastCGI について簡単に紹介します。 FastCGI は、言語に依存しないスケーラブルな構造の CGI オープン拡張機能であり、その主な動作は CGI インタプリタをメモリ内に保持することです...
。