PHPのCGI版、モジュール版とは…
一般に、PHPに関して言うCGI版、モジュール版の違いは、(特にレンタルサーバー関連で使われる場合)WebサーバーのApacheに関する動作の違いを言うことが多いです。
ここでは、上記の説明を簡単に行いたいと思います。
CGI版
CGI版と言われるものは、WebサーバーであるApacheとは別プロセスで動作させるPHPという意味合いが強いです。
実際に、CGIとは、Common Gateway Interfaceの略で、Webサーバーが、Webブラウザからの要求に応じて、プログラムを起動するための仕組みを言います。
プログラムを起動する=PHPを起動する
という意味となります。
ここで、Windows版のApacheのhttpd.conf の設定例をあげて、その違いを説明してみましょう。
ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php-cgi.exe"
この設定例は、
phpという拡張子のファイルを、php-cgi.exeという実行ファイルに渡して実行しなさい。
という設定になっています。
※Apacheのセッティングを行ったことがある方には、この設定だけで意味が分かられると思います。
モジュール版
逆に、モジュール版では、以下のような設定例となります。
LoadModule php5_module "c:/php/php5apache2.dll" AddType application/x-httpd-php .php PHPIniDir "C:/php"
この設定例は、
phpという拡張子のファイルを、php5apache2.dllというDLLライブラリに渡してい実行しなさい。
という意味ですから、WebサーバーであるApacheと同じプロセスで実行されることになります。
※Windowsのプログラミングを行ったことがある方には、このDLLファイルが何を意味するかよく理解できるのではないでしょうか。
つまり、モジュール版と言われるものは、WebサーバーであるApacheと同じプロセスで動作させるPHPという意味合いが強いです。
ほとんどの場合、モジュール版PHPが動作が速いとされています。
参考記:「PHP における「モジュール版」と「CGI 版」の比較 + WordPress の適用例 」
しかしながら、レンタルサーバーでは、ほとんどがCGI版PHPが採用されています。
これは、どういう意味があるでしょう。
答えは、上記の動作の仕組みの違いによります。
レンタルサーバーは、いろんな人の寄り合い所帯になっていて、悪意があるなしにかかわらず、PHPなどのスクリプトの暴走などで簡単にシステムが不安定になります。
例えば、モジュール版PHPが動作可能な環境で、あるユーザのPHPスクリプトが暴走しているとしましょう。
そうしたとき、管理者は、CPUの使用率が急激に上がったので対処しようとするでしょう。その時、暴走しているプロセスを停止させることでシステム全体の安定を確保しようと思いますが、モジュール版では、Apacheと同じプロセスとなりますから、Apacheが暴走しているように見えるわけです。
また、さらにApacheは、共有しているすべてのユーザが利用しているものでもありますから、安易にそのプロセスを停止するわけにいきません。
CGI版では、そのような問題を解決してくれます。CGI版は、別のプロセスですから、暴走しているスクリプトがあれば、そのプロセスを停止させれば良いことになります。
このように安定性を確保するためにCGI版を提供しているケースがほとんどのようです。
この記事を読んだ人は次の記事も読んでいます:


へどうぞ。(お試し期間が10日あります。)
からどうぞ。(お試し期間が14日あります。)
(4.50)
(4.44)
(5.00)
(1) ...
(2) ...
ボタンをクリックすることで、レンタルサーバー、ドメインレジストラを評価いただけます。

口コミ・評判
口コミ・評判を投稿 :