脱力系備忘録BloG ホーム »PHP Apacheモジュール版 CGI版 CLI版

PHP Apacheモジュール版 CGI版 CLI版  

PHPの動作モードの違いがごっちゃになっていたのでちょっと整理。

CGIとCLIを混同していたが、ざっくり分けると次のグループになる。

●WEBアプリケーション動作
・Apacheモジュール版
・CGI(Common Gateway Interface)

●コマンドライン実行
・CLI(Command Line Interpreter/Interface)

このグループ分けの根拠は「HTTPヘッダー」を出力するかしないか。
前者が出力をし、後者は出力しません。

ただし、CGI版の実行時に「-q」オプションをつけることでHTTPヘッダーの出力を抑制し、CLIとして実行することもできる。
この辺のことは、CGIとCLIの意味の違いを理解していればこだわることではないだろう。

では、Apacheモジュール版とCGI版を分ける理由はなんだろう?
その2者を比較した場合、Apacheモジュール版のほうが優れているみたい。

自分でサーバーを立ち上げ、それを自分だけが使う場合、何も考えずにApacheモジュール版の一択だと思う。

ではでは、なぜにCGI版が??

これは、レンタルサーバーのように複数ユーザーがPHPスクリプトを実行するような環境の場合に有利なようです。
ただ、ここで言う有利とは、速度やメモリといった実行能力の面ではなく、管理者の管理面での話。
というのも、
ApacheモジュールとしてPHPを起動した場合、PHPスクリプトはApacheと同じプロセスとして動作します。
CGI版はApacheとは別のプロセスとして動作します。

つまり、誰かのPHPプログラムが暴走した場合、管理者がその暴走PHPを止めようと思ったとき、Apacheモジュール版だとApacheが暴走しているように見えるうえ、Apacheを止めると大勢に影響が出る。
CGI版なら暴走しているプロセスをKILLしてしまえばいい。

ということのようです。

この認識であってるのかなあ?
関連記事

category: サーバー

この記事へのコメント

コメントの投稿

非公開コメント

コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。

プロフィール

お問い合わせ

最新記事

最新コメント

▲ Pagetop