- ベストアンサー
CGI/Perlという本はありますがCGI/PHPという本はないのはなぜですか?
- みんなの回答 (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サーバー構築」の分野ですのでそういった書籍を参考にしてください。
その他の回答 (4)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2281)
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アプレットなど、クライアント側(ブラウザなど)も含めることになると思います。 どうでもいいが、キーボードを替えたら打ちにくくてかなわない・・・
お礼
大変詳しい説明ありがとうございます。
- gon963
- ベストアンサー率0% (0/1)
>一方、PHPは、CGIとは別のインターフェースを使って、WWWサーバ側でのプログラム実行処理を行っています。PHPの言語仕様の範囲内でWebアプリを作ることが出来、CGIというインタフェースは使いません。 PHPも普通にCGIモードでも動く。 逆にPerlをCGIモードではなくてモジュールモードで動く。 たとえば低価格で有名なさくらでは http://www.sakura.ne.jp/rentalserver/matrix.html プロ以外PHPはCGIモードで動かしている。 PHPをCGIモードで使うのはイレギュラーな感じで利用率が少ないわけではありませんね。
お礼
大変詳しい説明ありがとうございます。
- mtaka2
- ベストアンサー率73% (867/1179)
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を
お礼
大変詳しい説明ありがとうございます。
- _himajin_
- ベストアンサー率65% (128/195)
CGI プログラムを書くために Perl がよく使われ、CGI = Perl と半ば同じもののように扱われていたためそのような表題の本があるのだと思います。 現在では、PHP も同様によく使われていますが、最近では「Webアプリ」などと呼ぶ場合(Webアプリ=CGI でも Webアプリ=PHP でもありませんが)も多かったりするので『CGI/PHP』と言う表題をつける本が無いのではないでしょうか。
お礼
回答ありがとうございます。
関連するQ&A
- CGI-PerlとPHPの速さについて
CGI-PerlとPHPの比較サイトを見てまわっていたところ、 「PHPは多くのアクセスがあっても(CGIに比べ)サーバへの負荷が少ない」 という内容を見かけました。 一般に「PHPはCGI-Perlより速い」と言われている気がしますが、 もしかしてそれは、アクセスが多数ある場合に限定した話なのだろうか、と疑問に思いました。 ローカルサーバなどで1人~数人しかアクセスしないという環境でも、 同じことが言えるのかどうか知りたいです。お願いします。
- ベストアンサー
- その他(プログラミング・開発)
- PerlのCGIとPHPを
特定のディレクトリのCGIの中にPHP(Apacheのモジュール版)を書き、(CGIで<?php~?>とHTMLを出力させる)Perl/CGIを実行したときにその出力の中に含まれるPHPを実行させたくて、.htaccessに AddHandler application/x-httpd-php cgi AddHandler cgi-script .cgi を書いたのですが、どうやらPHPのAddHandlerの後に書かれているCGIの方が優先され、PHPが実行されず、CGIのみが実行されます。 順序を逆に書いても、今度はPHPが優先されてしまい、どちらか片方しか実行されません。 どうすれば、両方同時に実行させられるでしょうか、教えてください。 それが不可能ならば、とりあえずPerl/CGIからPHPを呼び出して先に実行させるようなことができるのならば教えてください。 ちなみに、httpd.confには拡張子cgiをすべてのディレクトリでCGIとして実行、拡張子phpもすべてのディレクトリでPHPとして実行させるようにAddHandlerされています。 Apache/2.0.58(Windows版) PHP/5.1.6 CGI: ActivePerl 5.88 です。
- ベストアンサー
- PHP
- PHPがあればCGIは使わない
掲示板を作ってみたいです。 とりあえず仕事に使うわけでもないし、あくまで趣味の範囲なので覚えやすいと言われるPHPを勉強してみようと思いました。 昔から掲示板作りにはCGIというものが必要というイメージがあり、CGIを勉強できる本を探したところ、Perlとセットのタイトルを持つ本ばかりで「CGI/PHP入門」みたいなのはありませんでした。 もしかしてPerlで掲示板を作るにはCGIが必要と言うだけで、PHPなら単独で掲示板が作れるのでCGIは必要ないということなんでしょうか?
- ベストアンサー
- PHP
- PerlとphpのCGI版
Perlは文書に最適化された言語だと今日知りました。 そこで思ったのですが、PerlとphpのCGI版の場合だと ファイルの読み書きなどを考えてみたところ、速度にさほど違いはないのでしょうか? mod_perlとphpのモジュール版の速度は同じくらいだと聞きます となればphpのCGI版はさほど早くなく、Perlと同程度じゃないかと思ったわけです どなたか教えてください!
- ベストアンサー
- その他(プログラミング・開発)
- cgi(perl)からphp呼出
どなたかご教授ください。 perlのcgiからsystem関数でphp(コマンドで実行可能なコード)を実行して返値を得たいのですが perlのcgiの実行結果では画面に文字化けを起こしたような結果が帰ってきます。 cgi(perl)からphpを実行するにはどのように すればいいのでしょうか? ご教授ください。
- 締切済み
- PHP
- CGIでPHPではなくPerlを使っている理由はなんですか
私は昔Perlを独習してカウンタがつくれる程度だったのですが、最近勉強しなおして掲示板やHTML編集に使ってます。 しかし最近PHPというものがでてきて、WEBならPHPだと言われるようになりました。 しかしPerlを使っているので、どうしてもPHPを一から勉強する気になれなく、ずるずるといっています。 CGIでPerlを使っている人は、それ以外で、PHPよりPerlのほうがここがいいから使っている、もしくは、こうこうこういう理由でPHPに乗り換える必要がない、という方はおられますか?
- ベストアンサー
- Perl
- CGI(Perl)でできてPHPではできないことはなにがある?
表題の通りです。 例えば、 掲示板やカウンター、アンケートなどの ツールは両方ともできると思いますが、 CGIで組めるけど、PHPではどうもこれはできないなという ツールや機能がございましたら、ご教授ください。
- ベストアンサー
- PHP
- CGI/Perl
CGI/Perlについて1から学びたいと思い、本を買おうと思っているのですが、たくさんありすぎて、どれを買えばわかりません。 CGIやPerlについてはまったくの初心者です。 いい本があったら教えてください。
- ベストアンサー
- レンタルサーバ・ASP
- お勧めの本を教えて下さい。(CGI/Perl)
CGI/Perlを学ぼうと思い、図書館で 「Perlで作るCGI入門-基礎編」という本を借りたのですが、 付録がなく、本だけだったので、この際一冊購入しようと 思いましたが、どれが良いのか迷っています。 皆さんが思うお勧めの本がありましたらお教えください。 よろしくお願いします。
- ベストアンサー
- レンタルサーバ・ASP
お礼
大変詳しい説明ありがとうございます。