No.6ベストアンサー
- 回答日時:
ANo.5 ですが一部わかりにくいかもしれないので補足します。
「PHPはCGIより速い」は間違いですが、それ以前に比較対照がおかしいと言えます。
それとは別に「PHPはperlより速い」というのもありますが、これも間違いです。
PHPもperlも、それぞれ「CGIモード」と「modモード」があり、modモードはCGIモードよりも速いです。ANo.5 に書いたようにCGIとはプログラムとWebサーバーを橋渡しする環境のことで、modはWebサーバーの一部として組み込まれて動きます。当然「橋渡し」の分、時間がかかります。
たとえば、CGIでPHPを動かすよりも、modでperlを動かしたほうが圧倒的に速いです。
で、モードを同じにした場合は、perlのほうが速いケースが多いそうですが、大差はないという見方もあります。
おそらく、PHPはmodモード(モジュール)で動作させることが多いのと、CGIはperlだと思ってしまっている人が多いことで、先のような間違った情報が広まってしまったのでしょうね。
そのあたり、氾濫する情報にまどわされてしまうこともあるので、まずはPHP、perl本家のサイトを見るのが良いと思います。動作モードについても詳しく書かれています。もちろん信頼性も最も高いでしょう。
No.10
- 回答日時:
graphaffineさんに横槍を入れるようで恐縮ですが、
「PHPがASを指す」ということはありませんので、ご注意を(「AS」がサーバーモジュールを指すなら)。
私が下に書いたように、CGIは実行形態・環境を指しますが、PHPは単に言語を指すものです。
PHPもCGIで動きますし、モジュールでも動きます。それはperlも同じです。
「CGIとPHPの違いってなんですか?」
というご質問は、ある実行環境そのものと、言語(実行環境を問わない)を比べるようなことで、言ってみれば
「ウィンドウズとエクセルの違いってなんですか?」
に近いようなもの(ちょっと無理があるかも)。
エクセルにはマック版もあり、そもそもカテゴリ違いなので関連する性能差は比較できません。
なので、単に言葉が指す意味の違いでしかないと思います。
回答としては、
「CGIは、プログラム実行環境のことで、
PHPは、そのCGI上やモジュールで動かすプログラム言語のこと」
となるのかな。
なんとなくlunamariaさんはCGIとperlを取り違えている気がしますが…、わかりません。
No.9
- 回答日時:
lunamariaさん、今晩は。
先ほどはASとそうでないものとの実行形態上の比較でしたが、別の観点での比較も付け加えさせてもらいます。
なお、lunamariaさんのレベルがわかりませんがある程度の専門用語を説明なしで使わせてもらいますがあしからずご了承ください。
将来性の比較 個人で開設した小規模なサイトは別として、業務用のある程度複雑なサイトではCGIは時代遅れであり、大部分はASにて開発、運用が行われるようになる。
理由1 CGIはOSに多大な負担をかけ、実行の効率が低い。実際例えば100個のリクエストがきたとき、CGIの場合はOSが100個のプロセスをアタッチするが、ASの場合その100個はASのプロセスのサブプロセスになり、リクエストの多少によらずプロセス数は変わらない。
理由2 ASでの開発はCGIの開発より効率がよい。何故なら、DB処理などの基本機能がASに装備されていることやスクリプト(簡易言語)という名のとおり、CGIを開発する一般のプログラミング言語より覚えやすく使いやすいのがその理由である。
No.8
- 回答日時:
CGIとPHPの違いを一言で言えば、アプリケーションサーバー(以下、ASと略す)であるか否かということになります。
PHPがASでCGIはそうではありません。CGI、PHPともにWebサーバーから呼び出されHTMLを返すという点では同じです。
違いは実行形態にあります。
CGIは一般的には実行形式ファイル(Windowsで言う拡張子exeのファイル)でありサーバーOSの元で稼動します。この場合、言語は無関係になります。
ASの場合、通常はそのASに応じたスクリプト言語があり、その言語で書かれたプログラムをASのスクリプトエンジンが解釈実行します。
ASとしては、PHP以外にColdFusionやASP.NETなどが有名です。
なお、蛇足ながら付け加えるとアプリケーションサーバーは本来はより広い意味の言葉であり、今述べたのは正確にはWebアプリケーションサーバーと言う事になりますが、実際問題としてはアプリケーションサーバーとはWebアプリケーションサーバーのことを指すことが多いようです。
かなり回りくどくなってしまいましたが、こんなところでよろしいでしょうか。
No.7
- 回答日時:
「Perlプログラミング中毒!―実用&趣味的Perlモジュール・リファレンス 」
と言う本を少し読んだだけなのですが、最新のPerlはWin32APIが使え、windows側にアクセスできるってことかなー?
ディスクトップにショートカットを作るとか??
これはPHPには、できないかもしれません。
HPに関しては、Perlでできる事はPHPでもできるし、PHPの方が簡単なものも多い。
とりあえず、特殊な事をしなければ、掲示板、カウンター等は同様にできますよ。
Perlの方がまだ経験が長いですが、PHPでスクリプトを作っていて困った事はありません。
No.5
- 回答日時:
「PHPはCGIより速い」は間違いです。
たとえばC言語で書いたCGIなら同等かそれ以上になる場合も多いでしょう。
ちなみにCGIは言語ではありませんので、使う言語次第で「何でもできる」と言えます(語弊があるかもしれませんが)。
仕組みという意味では、CGIとはプログラムとWebサーバーを橋渡しする環境を指します。PHPは言わばWebサーバーに埋め込まれたプログラム環境と言えます。
そして、CGIで多く使われる言語にperlがあり、CGIの代表的存在であるために「perlはCGIで動作する」と思いこまれる向きもありますが、実はperlにも「CGIモード」と、PHPと同じような動作方法(CGIを介さずWebサーバーに埋め込まれた状態で動作)である「mod_perl」があります。これは言ってみれば、それこそPHPと言語が違うだけの状態です(どちらのモードなのかはサーバーへの実装による)。
それらを踏まえ、CGIは柔軟性や可能性・拡張性という意味で、いろいろなことをやりたい場合に強いと言えますし、PHPは初心者には記法が大変覚えやすくDBなどの操作も簡単に記述できる利点があります。
No.4
- 回答日時:
#1の方が回答されているようにPHP
のほうが動作が速いとされています。
そして、PHPとCGI(Perl)を使ってきた私の視点で言いますと、
Webページにちょっとだけちょっとした処理を追加したい場合、
選択肢はPHPだと思います。
PHPだとJavaScriptのようにHTMLの中に書き込めます。
ちょっとした処理だけなら楽です。
Perlだとそのちょっとだけを作るのにすべてを関数を使って出力しなければいけない。
などからです。
悪い点は、
まだつかえるサーバーが少ない。
まだまだ発展途上(私の中で)
一方Perlの利点は、
フリーで配布されているスクリプトが多い。
たいていのサーバーで動作が保障されている。
テキスト処理においては右に出るものはいないといわれている。
悪い点は、
アクセス数が多いとサーバーに負荷がかかる。
ちなみにどちらもつくろうと思えばメモ帳でできます。
No.3
- 回答日時:
CGIといった場合は、広範囲になります。
CGI(Common Gateway Interfaceの略)は、サーバとページが連携する仕組み、(具体的にはサーバでプログラムを動かして)という感じのことです。
なので、プログラミング言語は問わないので、広義ではPHPもそこにCGIに入るはずです。たしか。
もちろん、perl、そして、C/C++やrubyも入るはずだと。。
一般的に掲示板の設置をされる場合でいわれる「CGI」は、perlで書かれたプログラムのことですよね。
perlに対して、PHPは、ページ(HTML)内に記入して呼び出せるし、データベースに合わせられる部分が有ると思います。
lunamariaさんの何れの疑問についても、ここのページに詳しいと思いますので、はっておきますね。
http://www.scollabo.com/banban/cgi/cgi_003.html
No.1
- 回答日時:
一般的にPHPのほうがCGIよりも処理が早いと言われています。
どちらの言語を選択しても、プログラムとして「○○の機能が実現できない」
というようなことはほとんどないかと思います。
詳細については下記のページを参考にされると良いと思います。
参考URL:http://x-web.pobox.ne.jp/fphp/fphp_01.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- PHP ログイン機の付きの掲示板サイトを作りたいです。 2 2022/10/09 04:33
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PerlかPHP
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
FTPにて553エラー
-
プロバイダで定められたPerlへ...
-
ApacheでのCGIについての質問
-
Namazuのインデックスが作成で...
-
ラジオボタンのグループ化
-
CGI経由PDFダウンロードでエラー
-
同じ階層内を意味する「./」を...
-
cgiにアクセスしても画面が真っ白
-
掲示板のスレッドが消えた!?
-
C# ファイル削除のエラーコード
-
ニフティでメールフォームを使...
-
CGIでソースがそのままでてしま...
-
ASPからJavaScriptへの受け渡し...
-
CGIカウンターの画像が表示され...
-
歌詞画ってどうやって作るの?
-
なぜかカウンターのパーミッシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CGIに関して
-
CGI内でphpを含むhtmlを読込みたい
-
CGIとPHPの違いってなんですか?
-
perlからphpを実行して結果を得...
-
EXCELファイルに誰がアクセスし...
-
《エクセルVBA》「他の人が該当...
-
URLに~/cgi-bin/~を隠す方法
-
VBAでサーバーにアクセスするに...
-
CGIでソースがそのままでてしま...
-
ラジオボタンのグループ化
-
ASP(IIS?)のエラーについて
-
FTPにて553エラー
-
VBScriptで、ファイルから任意...
-
ASPから既存のexcelブックを開...
-
ASPからJavaScriptへの受け渡し...
-
SFTPなどは使わないホームペー...
-
ApacheでのCGIについての質問
-
ユーザの所属するグループを取...
-
特定のCGIだけ、作動するかわり...
-
PyCharmでのCGIを使ったWebサー...
おすすめ情報