ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:yuyuyuyuu CGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?
困り度:
  • 暇なときにでも
アマゾンで調べると表題でCGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?
質問投稿日時:08/05/06 23:43
質問番号:4003093
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:taloo 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アプレットなど、クライアント側(ブラウザなど)も含めることになると思います。

どうでもいいが、キーボードを替えたら打ちにくくてかなわない・・・
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/05/09 03:58
回答番号:No.5
この回答へのお礼大変詳しい説明ありがとうございます。

回答

 

回答者:gon963 >一方、PHPは、CGIとは別のインターフェースを使って、WWWサーバ側でのプログラム実行処理を行っています。PHPの言語仕様の範囲内でWebアプリを作ることが出来、CGIというインタフェースは使いません。
PHPも普通にCGIモードでも動く。
逆にPerlをCGIモードではなくてモジュールモードで動く。

たとえば低価格で有名なさくらでは
http://www.sakura.ne.jp/rentalserver/matrix.html
プロ以外PHPはCGIモードで動かしている。
PHPをCGIモードで使うのはイレギュラーな感じで利用率が少ないわけではありませんね。
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:08/05/07 20:54
回答番号:No.4
この回答へのお礼大変詳しい説明ありがとうございます。

回答

良回答20pt

回答者:ralf124c なぜそのような書籍が無いのか結論から申し上げると「需要が無い」からです。
その理由は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サーバー構築」の分野ですのでそういった書籍を参考にしてください。
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:08/05/07 11:26
回答番号:No.3
この回答へのお礼大変詳しい説明ありがとうございます。

回答

良回答10pt

回答者:mtaka2 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を
種類:回答
どんな人:専門家
自信:自信あり
回答日時:08/05/07 07:05
回答番号:No.2
この回答へのお礼大変詳しい説明ありがとうございます。

回答

 

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

現在では、PHP も同様によく使われていますが、最近では「Webアプリ」などと呼ぶ場合(Webアプリ=CGI でも Webアプリ=PHP でもありませんが)も多かったりするので『CGI/PHP』と言う表題をつける本が無いのではないでしょうか。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/05/07 00:20
回答番号:No.1
参考URL: http://ja.wikipedia.org/wiki/Common_Gateway_Interface
この回答へのお礼回答ありがとうございます。
最新から表示回答順に表示良回答のみ表示