• ベストアンサー

CGIとPHPの違い

このような質問は何件かあったのですが、イマイチ理解できなかったので質問させていただきます。CGIとPHPどちらかを使いたいと思っているのですが、CGIは許可しているサーバーが多い、PHPはCGIより動作が速い、位のことしか分かりません。この他にCGIとPHPの利点、欠点があったら皆さんの知っている範囲でよいので教えてください。宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

まず、基本的な事から説明します。 厳密に言うと、「CGI」はプログラムを実行する仕組みを指し、プログラミング言語ではありません。プログラムを実行する仕組みは、他に「モジュール」があります。 プログラミング言語としては、Perl、PHP、C言語、Ruby・・・などが、あります。 昔は、CGI+Perlの組み合わせが多く、CGIといえば Perlでした。 CGI = Perl と誤用されている事も多く、勘違いしている人もい多いですが、厳密に言えば、CGI と Perl は、まったく別の物です。 PHPやモジュールは比較的新しい方法で、最近は、モジュール+PHPの組み合わせも多くなってきています。 しかし、モジュール版のPHPも、便宜上、CGIと呼ばれる事が多いので、話がややこしいです。 まとめると、「CGI」は下記のような広い意味で使われます。 1:Webサーバからプログラムを実行する仕組みの1つ 2:Perlで書かれた、CGIプログラム(又は、Perlそのもの) 3:モジュールを含めた、サーバサイドプログラムの総称 文章を読む場合、「CGI」が何を指しているのか、注意しながら読む必要があります。 ------------------------------------------------------------- 自分でサーバーを管理すれば、自由な組み合わせを選択できますが、一般的なプロバイダで利用できるのは下記の組み合わせです。(多いと思われる順) CGI+Perl モジュール+PHP CGI+PHP モジュール+Perl つまり、仕組みは「CGI」か「モジュール」、言語は「Perl」か「PHP」となります。 次に、それぞれの違いについて簡単に説明します。 まず、CGIとモジュールの違いですが、CGIの方が処理が重い、モジュールの方が軽い、と言う認識で良いと思います。 モジュールの方が新しい技術で、サーバの負荷を軽減するための物です。細かい点で、メリット、デメリットがありますので、どちらを採用するかはプロバイダ次第です。 次に、PerlとPHPの違いについて。 Perlは古くから有るスクリプト言語です。登場したのは、1987年らしいです。その頃はインターネットもありませんね。Perlはテキスト処理を得意としています。HTMLの中身はテキストなので、CGIとして良く使われて来たのだと思います。 PHPの原型は1995年に作られ、1998年にリリースされたPHP3が現在のPHPに近いものらしいです。PHPは比較的新しい言語で、初めから、HTMLの処理をターゲットに作られています。 両者を比較すると、PHPが後発の新しい言語で、Perlや、他の言語の良い所を色々と取り入れています。初めからHTMLを処理するために作られていますので、その点でもメリットは多いです。現在は、完成度や、普及率の点でも問題ないと思います。 今から勉強するなら、PHPの方をお勧めします。 私は両方使っていますが(PerlからPHPへ乗り換え中です)、PHPの方が便利だと思います 。 HTMLのフォームのデータを処理する、ファイルをアップロードする、データベースを利用する、セッションを管理する・・・など、色々なケースを考えても、PHPの方が簡単にプログラムが書けます。

その他の回答 (2)

noname#58606
noname#58606
回答No.3

あー、CGI=Perlと仮定すると、現状でPerlの利点はほぼないです。 ちょっと前までは、Perlの方が過去の資産がたくさんあったのですが、今はそんな事もないかなー。 サーバも、Perlが使える所はPHPも使える所が多いし。 スピードなんかも、少なくとも体感できるほど、差はないと思いますよ。 多くの場合は、遅いのは言語のせいではなく、サーバやネットワーク状況、作り方の3つのうちのどれかが、悪いからです。 すくなくとも、素人が作り始めるのなら、全く関係ない。 分かりやすい利点もPHPの方が多いです。 しいていえば、Perlは・・・とhtmlに埋め込みと、音とか、かなりマニアックな事を書こうとしましたが、やめました。 これから勉強しようと思っているのなら、PHPで問題なしです。 うだうだ質問しないで、PHPの初心者本を買いに走りましょう。w

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.1

CGIというのは動的ホームページを作成するための仕組み 全般を指し、それを実現する為にPHP, Perl, javascript 等の言語が多数存在します。 Webサーバーによってどの言語をサポートしているかは異 なりますので、予め確認しておく必要があります。

専門家に質問してみよう