【先着1,000名様!】1,000円分をプレゼント!

perlやPHPは、実装方法にCGIとモジュール版があると聞き、
その性能の比較について調査しております。
モジュール版の長所は負荷が少ない事だと書かれていましたが、
では逆にCGIの利点というものは無いのでしょうか?
もしあるのでしたら、教えていただきたいです。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

CGIというのは Common Gateway Interface の略称で


Webブラウザ(HTTPC)とWebサーバ(HTTPD)との間の通信方式の一種です。
この仕様に従ってさえいれば基本的にはどの言語で開発することも
できますし、環境も問いません(勿論、動作するHTTPD側の環境仕様に
基づきます)。
その気になればCなどでもCGIは作成できます。
(その環境下でコンパイルする必要がありますが)

その代わりに実行する度にメモリ上にロードして終了する度にメモリ
から削除されるので速度は遅く、安定性なども低いとされます。

モジュール版というのは恐らくはApacheサーバでのことですよね。
その場合、サーバソフトウェアはApacheのみに限定されてしまい、
動作自体もApacheに大きく依存します。
(一部、他のサーバ=CGI版と動作が異なる部分がある)

Apacheを使用するなら無難にモジュール版を使用した方がいいとは
思いますが、モジュールが用意されているとは限りません。

因みに、IISにもISAPIという専用のモジュール実行機構があります。
(PerlやPHPなどをISAPIで実行するかCGIとして実行するかを選べます)

参考URL:http://www.studyinghttp.net/cgi,http://ja.wikipe …
    • good
    • 0

しまった、投稿ボタンを押した直後に気づいた。



コンパイル不要言語ではなく、インタプリタ型言語に訂正です。
    • good
    • 0

モジュール:


スピードが速い(起動終了処理が不要)
メモリ使用量が多い(アクセスしていなくてもメモリが解放されない)
rootやapache権限で実行される

CGI:
スピードが遅い(起動終了処理が必要)
メモリ使用量が少ない(アクセスがなければメモリを使用しない)
どんな言語でも作成できる
SuExecを使用できる(ユーザー権限で実行できる)

モジュール版PHPはどちらかというとFast CGIに近いと思います。
Fast CGIはPerlやRuby、PHPなどのコンパイル不要言語で使用するためのモジュールで、起動終了処理を省略して応答速度を短くするための物です。

ざっと見た特徴はこんな感じだと思います。
    • good
    • 0

サーバーが Suexecである場合に限りですが


Unix系OSでのPHPのパーミッションは
CGI= 700で動く
モジュール版= 604以上
と成りますので
## CGI版の場合は 700にしておけば他のユーザーからは中身を見ることが出来ません(rootは別だが)
##モジュール版の場合は 604だとブラウザから直接は無理でも
他のユーザーからFTPや設置したCGIで読み込むことが出来る場合が有ります。

**出来る場合が と言うのは ちょっとややこしいですが例えば
ユーザーtarou がグループ名も tarou
ユーザー hanako がグループ名も hanako の場合

ユーザー tarou の test.php が604 だと hanakoは勿論所有者では有りませんし
グループでも無いのでotherになります
その場合 FTP、コマンドライン、ユーザーhanakoの設置したCGI からは604のファイルを読み込むことが可能です

**一方 ユーザーtarou もhanakoも 同じグループ 例えば usergrp と言うグループである場合は
tarouの604のfileから見て hanakoは同じグループですから 読み込むことは出来ないはずです

ややこしいけど判りました?
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む


人気Q&Aランキング