ホームページ > バックエンド開発 > PHPチュートリアル > php fastcgi とは何ですか? fastcgi_PHP チュートリアルの実装方法

php fastcgi とは何ですか? fastcgi_PHP チュートリアルの実装方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-07-13 10:50:36
オリジナル
1115 人が閲覧しました

FastCGI は、HTTP サーバーと動的スクリプト言語間のスケーラブルな高速通信インターフェイスです。最も一般的な HTTP サーバーは、Apache、Nginx、lighttpd などの FastCGI をサポートしています。同時に、FastCGI は、mod_phpsusexec で実行される PHP アクセラレーション モードの代わりに、PHP の mod_fastcgi で実行される PHP を含む多くのスクリプト言語でもサポートされています。

特徴:

1. 持続的な接続。リクエストごとに起動して初期化する必要がなく、高速です。
2. PHPの実行速度を3~30倍高速化できると言われています。その理由は、PHP インタープリターが必要になるたびにメモリーから読み取られるのではなく、メモリーにロードされるため、スクリプトに依存するサイトのパフォーマンスが大幅に向上するためです。
3. リクエストごとに起動して初期化する必要がないため、システム リソース (CPU) の使用量も大幅に削減されます。
4. 元の PHP プログラムを変更する必要はまったくありません。
5. 使用可能な php.ini ファイルは 1 つだけです。さまざまなスクリプトのニーズを満たすために複数の php.ini ファイルを構成する場合は、そのサブディレクトリで PHP の高速 CGI を無効にする必要があります。これにより、他のディレクトリが引き続き CGI に対して有効になります。

phpはLinux上でfastcgiモードで実行されます

1.Linuxシステム
[root@localhost /]# cat /etc/redhat-release
CentOS リリース 5.2 (最終)
2.Apacheをインストールします
Apache をダウンロードして解凍します。この記事のデモで使用したバージョンは 2.2.19 です。 [root@localhost]# wget http://labs.renren.com/apache-mirror//httpd/httpd-2.2.19.tar.gz
[root@localhost]# tar xvzf httpd-2.2.19.tar.gz

Apache をコンパイルしてインストールします。この記事の目的は、便宜上、コンパイルに必要なパラメーターのみを選択することです。 [root@localhost]# cd httpd-2.2.19

[root@localhost]#./configure --enable-so
[root@localhost]#make
[root@localhost]#make install

3. mod_fcgid をインストールします (mod_fastcgi ではなく mod_fcgid であることに注意してください)。 mod_fcgid をダウンロードして解凍します。この記事のテストで使用したバージョンは 2.3.6

です。 [root@localhost]wget http://labs.renren.com/apache-mirror//httpd/mod_fcgid/mod_fcgid-2.3.6.tar.gz

[root@localhost]tar xvzf mod_fcgid-2.3.6.tar.gz

mod_fcgidをコンパイルしてインストールします
[root@localhost]cd mod_fcgid-2.3.6

[root@localhost]APXS=/usr/local/apache2/bin/apxs ./configure.apxs

[root@localhost]make
[root@localhost]メイクインストール

注: インターネット上の一部のドキュメントには APXS=/usr/local/apache2/bin/apxs がありません。詳細については、mod_fcgid ソフトウェアの README-FCGID ドキュメントを参照してください。
4.PHPをインストールする

PHP をダウンロードして圧縮します。PHP バージョンは 5.3.6 です

[root@localhost]wget http://www.php.net/get/php-5.3.6.tar.bz2/from/cn.php.net/mirror

[root@localhost]tar xvjf php-5.3.6.tar.bz2


PHPをコンパイルしてインストールします
[root@localhost] cd php-5.3.6
[root@localhost]./configure --prefix=/usr/local --with-configure-file-path=/etc

[root@localhost]make

[root@localhost]メイクインストール



注: ライブラリ ファイルのエラーが報告された場合は、関連するライブラリ ファイルをインストールしてください。作者のシステムでは、yum install libxml2-devel で問題が解決されました。インターネット上の多くのドキュメントでは、--enable-fastcgi パラメータを使用する必要があると記載されています。作成者は ./configure --help でこのパラメータを見つけられませんでした。その代わりに、--disable-cgi パラメータを見つけたので、使用しないことにしました。 --enable-fastcgi を追加します。このパラメータは省略できることが後で確認されました。 --with-apxs2 パラメーターを追加しないでください。

5.設定

FastCGIスクリプトディレクトリを作成する

[root@localhost]# mkdir /usr/local/apache2/fcgi-bin

[root@localhost]# ln -s /usr/local/php/bin/php-cgi /usr/local/apache2/fcgi-bin/php-cgi

Apache設定ファイルを編集する
[root@localhost]# vi /usr/local/apache/conf/httpd.conf
以下を追加します

ScriptAlias /fcgi-bin/ "/usr/local/php5/bin/"

AddHandler php-fastcgi .php
アクション php-fastcgi /fcgi-bin/php-cgi
AddType application/x-httpd-php .php

アイドルタイムアウト 300
プロセスライフタイム 1800
最大プロセス数 100
デフォルトMinClassProcessCount 3
デフォルトMaxClassProcessCount 8
IPCConnectタイムアウト15
IPCCommタイムアウト 300
プロセスあたりの最大リクエスト数 100

<ディレクトリ/usr/local/apache2/fcgi-bin> 許可オーバーライドなし
オプション FollowSymLinks +ExecCGI
注文の許可、拒否
全員から許可

変更
<ディレクトリ「/usr/local/apache2/htdocs」>
オプション インデックス FollowSymLinks +ExecCGI
許可オーバーライドなし
注文の許可、拒否
全員から許可

注: 作成者がテストした test.php ファイルは htdocs ディレクトリに配置されているため、htdocs ディレクトリの権限には ExecCGI が必要です。ディレクトリが異なる場合は、ディレクトリに ExecCGI 権限を与えてください。 mod_fcgid がインストールされると、別の LoadModule fcgid_module modules/mod_fcgid.so が自動的に追加されます。

6. 検証

テストページを編集
[root@localhost]# vi /usr/local/apache2/htdocs/test.php
echo phpinfo();
?>

IIS7 で PHP を実行するように FastCGI を構成する

環境の説明:

オペレーティングシステム: Windows 2008サーバー64ビットシステム、IIS7.5を使用
PHP バージョン: 公式ダウンロード PHP 5.4.16 VC9 x86 Non Thread SafeZIP バージョン。
PHP パス: C:php-5.4.16

設定手順:

  1. PHPファイルを解凍し、ディレクトリ名を変更してCドライブに置きます。ディレクトリアドレスは C:php-5.4.16 です
  2. php.ini-production をコピーし、名前を php.ini に変更します。まず、PHP.ini パラメーターの説明を参照して変更します。
    そして、FastCGI をサポートするように PHP を変更します:
  3. winmail サイトを開き、以下に示すように関連するオプションを追加します。
    「ハンドラーマッピング」を選択します:



    「モジュールマッピングを追加」を選択します:



    「モジュール」-「FastCgiModule」と PHP パスを選択します:



    「はい」を選択します:



    以下に示すように「FastCGI」関連のオプションを設定します:





    上図の「最大インスタンス数」と「最大インスタンスリクエスト数」は、状況に応じて変更できます。
    「インスタンスの最大数」: Windows Server 2008 R2 オペレーティング システムの場合、プロパティを 0 に設定すると、IIS は現在の実行環境で最適な FastCGI プロセスの数を自動的に選択できます。
    「インスタンスリクエストの最大数」: 状況に応じて変更することも、10,000 に変更することもできます。
    変数を追加します: PHP_FCGI_MAX_REQUESTS 値は: 10000

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632622.html技術記事 FastCGI は、HTTP サーバーと動的スクリプト言語間のスケーラブルな高速通信インターフェイスです。 Apache、Nginx、lighttpd など、最も一般的な HTTP サーバーは FastCGI をサポートしています...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート