CGIとPHPの違い
CGI と PHP の違いは、ホームページ (Webサーバ) を一つの会社と例えた場合、お客様 (サイト閲覧者) からの注文 (アクセス) を外注に出す (CGI) か、社内で対応する (PHP) か、の違いです。
外注 (CGI) の場合処理に多少余計な時間がかかりますが、その分社内スタッフを減らして会社をスリムに (サーバメモリの節約) できます。
一方、社内で対応 (PHP) する場合、素早いレスポンスが強みです。
CGIとPHPの比較
CGI と PHP のどちらを選ぶべきか
CGI と PHP どちらがいいか?というと、「作るものによる」というのが答えです。
お問合せフォームなど、あまりアクセスが多くないものの場合でなおかつ一般的な機能のものの場合、どちらでもあまり変わりません。
どんなサーバでも動かしたい、という希望がある場合には Perl などで CGIプログラムを書く事にメリットがあるでしょう。
何か特殊な処理または非常に単純な処理をしたい場合、好きなプログラミング言語を選んで CGI プログラムを書いた方が早いでしょう。特に Perl で CGI プログラミングをする場合、CPAN という非常に強力かつ無料のモジュールサイトが利用できます。
アクセスが多いページを作る場合、特に VPS や共用サーバサービスを使用している場合、CGI 方式は「プロセス数の上限」という制限にかかりエラーになる可能性が高くなります。全てのページ表示を動的に行うような場合、PHP の方が適しています。
CGIとPHPの比較表
比較項目 | CGI | PHP | 備考 | |
---|---|---|---|---|
表示時 | 速度 | 遅い | 速い | プログラムの内容によっても変化。 アクセスが多くない限りあまり変わらない。 |
開発時 | 開発速度 | (慣れによる) | (慣れによる) | |
機能の限定 | 殆ど無い | PHPが提供する 機能の範囲 |
CGI はプログラミング言語の限定はなし。 さまざまな機能を選択して利用できる。 |
|
バージョン互換性、 移植性 |
高い | 低い | 「サーバを変更した時にそのまま動く可能性」の高低の事。 |
「CGI」「PHP」という用語についての補足
「CGI」は方式の名前
ここでいう「CGI」は「CGI方式で動くプログラム」の事ですが、この言葉は正に「外注方式で動くプログラム」を意味します。 (詳しくは関連リンクの「CGI とは何ですか?」を参照して下さい。)
「PHP」はプログラミング言語の名前
一方「PHP」はプログラミング言語の名前で、本来は方式の名前である「CGI」と対比ができる言葉ではありません。しかし現状では PHPプログラムは Web サーバに組み込まれた形で動かせる事が多く、その点が比較のポイントになりますので、上記の説明はこの方法で動くのが PHPプログラム、という事にして記載しています。
方式は変更可能
厳密に言えば PHP で書いたプロプログラムも CGI 方式で動かす事は可能で、共用レンタルサーバなどでは、PHP プログラムであっても CGI 方式での稼働に限定している所もあります。
CGI 方式で PHP プログラムを動かした場合は (方式として) 「表示速度が速い」などの差が無くなりますので、比較のポイントは具体的にどの程度の速度が出るかや、プログラムのしやすさなどの開発時の問題に限定されます。
また逆に、CGI で非常によく使われているプログラミング言語「Perl」では、CGI 方式で稼働させずに一般的な PHP と同じくサーバに組み込んだ形で稼働させることが可能です ( mod_perl という機能を使います) 。この場合も、比較のポイントは具体的に何をやるかと、開発のやりやすさなどに限定されます。