プロが教えるわが家の防犯対策術!

アマゾンで調べると表題でCGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?

A 回答 (5件)

なぜそのような書籍が無いのか結論から申し上げると「需要が無い」からです。


その理由はPHPとCGIの動作に起因し、PHP利用の最大のメリット(?なのでしょうか?)であるHTML組み込みなど利用できなくなるからです。

動作の概略(あくまで概略なので細かくするとキリがありません)を示しますと(右に長いのでテキストエディタなどにコピペしてみていただくと見やすいかと思います)

CGIの動作
 ブラウザ-[INTERNET]->Webサーバー -[CGI]-> システム:処理言語{Perl/C/Ruby...etc.}+プログラム:処理結果 -[CGI]-> Webサーバー -[INTERNET]->ブラウザ

PHPの動作
 ブラウザ-[INTERNET]->Webサーバー:PHP:処理結果 -[INTERNET]->ブラウザ

PHPを単体で処理できるようにインストール設定すればPHPをCGIとして利用することも可能です。当然、利用範囲がCGIの域を出なくなり、PHPとしてのメリットがなくなってしまいます。
そのような非効率的な運用利用をする方はほとんどいないので書籍にしても需要が無いと思います(何らかの事情で必要な方なら、WebサーバとCGIがしっかり理解できていれば簡単に実現できるかと思います)。

ちなみに、代表的なWebサーバApacheは外部組み込み機能を使ってPerlを「PHPの動作」と同じ動きをさせることができます。
そちらは「CGI」の範疇ではなく「Webサーバー構築」の分野ですのでそういった書籍を参考にしてください。
    • good
    • 0
この回答へのお礼

大変詳しい説明ありがとうございます。

お礼日時:2008/05/11 20:25

Perlはテキストを扱う処理なら何でもありですが、(実際はバイナリデータも扱える)


Perl解説書とすると、CGIアプリケーションは作れないのか、ということになると思います。
特にHTMLの出力や、HTMLフォーム/HTMLアンカーからの受信やメールなど、CGIアプリケーションとしての専用の処理が必要になりますが、
そういう処理はPerl解説書には載っていません。
(PerlアプリケーションのサンプルとしてCGIアプリケーションを作っている解説書もあります)

PHPはどちらかというとWeb用の言語ですし、わざわざCGIと銘打たなくてもPHPだけでWeb用の解説書だと理解してもらえるため、
CGI/PHPという書き方はしていない物と思われます。

また、広く一般的に「PHP」という言葉が使われているため、
「CGI/PHP」と書くと、「PHP」とは別の言語なのか、と思われる方もいらっしゃるかも知れません。
マーケティングとかそう言う方面のカテゴリーで聞かれると、その関連の回答が得られるかもです。


個人的にはCGI、ASP、Apacheモジュール、SSI(Apacheはモジュールで実現している)、Servlet等を全てひっくるめて、「CGI」または「CGIなど」と呼んでます。
そのプログラムは、スクリプト言語ではない言語で作ることもありますから、CGIスクリプトではなくCGIアプリケーションと呼んでます。
WebアプリケーションというとJavaScriptやFlash、JAVAアプレットなど、クライアント側(ブラウザなど)も含めることになると思います。

どうでもいいが、キーボードを替えたら打ちにくくてかなわない・・・
    • good
    • 0
この回答へのお礼

大変詳しい説明ありがとうございます。

お礼日時:2008/05/11 20:26

>一方、PHPは、CGIとは別のインターフェースを使って、WWWサーバ側でのプログラム実行処理を行っています。

PHPの言語仕様の範囲内でWebアプリを作ることが出来、CGIというインタフェースは使いません。
PHPも普通にCGIモードでも動く。
逆にPerlをCGIモードではなくてモジュールモードで動く。

たとえば低価格で有名なさくらでは
http://www.sakura.ne.jp/rentalserver/matrix.html
プロ以外PHPはCGIモードで動かしている。
PHPをCGIモードで使うのはイレギュラーな感じで利用率が少ないわけではありませんね。
    • good
    • 0
この回答へのお礼

大変詳しい説明ありがとうございます。

お礼日時:2008/05/11 20:25

PerlなWebアプリはCGIを使っていますが、


PHPなWebアプリはCGIを使っていないからです。

「CGI」とは「Common Gateway Interface」の略であり、
WebアプリとしてWWWサーバ側で独自のプログラムを動かす時に
WWWサーバと独自のプログラムとの間の「インターフェース」を指す言葉です。
実際には、このインターフェースを使ったWebアプリのことを「CGI」と呼ぶことも多いのですが…

で、CGI(プログラム)は、そのインタフェースとしてCGI(インタフェース)を使っていれば、開発言語は問いません。
C言語でもrubyでもシェルスクリプトでもなんでもいいのですが、PerlはCGI(プログラム)を実現する上で便利な機能を持った言語ということで、PerlによるCGIが主流になってます。
PerlでWebアプリを作る場合は、「Perlの言語仕様」と「CGIのインタフェース仕様」の両方の知識が必要になるため、解説本などでは「CGI/Perl」といった表現になるのわけです。

一方、PHPは、CGIとは別のインターフェースを使って、WWWサーバ側でのプログラム実行処理を行っています。PHPの言語仕様の範囲内でWebアプリを作ることが出来、CGIというインタフェースは使いません。
ですので、PHPを使ったWebアプリの解説本には、単に「PHP」とだけ出てくることになります。




PHPはCGIを
    • good
    • 0
この回答へのお礼

大変詳しい説明ありがとうございます。

お礼日時:2008/05/11 20:24

CGI プログラムを書くために Perl がよく使われ、CGI = Perl と半ば同じもののように扱われていたためそのような表題の本があるのだと思います。



現在では、PHP も同様によく使われていますが、最近では「Webアプリ」などと呼ぶ場合(Webアプリ=CGI でも Webアプリ=PHP でもありませんが)も多かったりするので『CGI/PHP』と言う表題をつける本が無いのではないでしょうか。

参考URL:http://ja.wikipedia.org/wiki/Common_Gateway_Inte …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

お礼日時:2008/05/08 19:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!