• ベストアンサー

なぜ CGI は Perl 言語で作成/動く環境が多いのか。

最近 CGI に興味をもちここで質問しながらネット検索をしました。 すると Perl 言語での CGI サンプルが一番多く C 言語で作る CGI の サンプルが少し見つかりました。 私の使っている無料サーバーでも CGI は使えますが Perl 言語だけ有効です。 セキュリティの問題で SSI と組み合わせた C 言語の CGI は実行出来ないようです。 質問内容: (1)なぜ CGI は Perl 言語が一番多いのか?→PHP、Cもあるのに (2)なぜ無料サーバーの多くが Perl 言語しか使えないのか? (3)処理の重い CGI を使うとサーバーがダウンするので使わないようにと  私の使っている無料サーバー(infoseek)でなっています。どの程度の  処理のことでしょうか? 上記の3つまたは1つでもアドバイスをして欲しいです。 回答をお待ちしています。

  • CGI
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • maguro999
  • ベストアンサー率21% (59/273)
回答No.3

>(1)なぜ CGI は Perl 言語が一番多いのか?→PHP、Cもあるのに Cのコンパイルはどうする気ですか? 共有型のレンタルサーバでSSHログインができてCのコンパイルまでさせてくれる サービスは自分は知りません。 PHPに関してはサーバの方針でしょうね。 infoseekはinfoseekになる前のfreewebの頃からPerlだけ利用できました。 途中から仕様変更して全サーバに対してPHPをインストールするのは手間でしょうから >(2)なぜ無料サーバーの多くが Perl 言語しか使えないのか? PerlもPHPも使えるサーバも結構ありますよ。 >(3)処理の重い CGI を使うとサーバーがダウンするので使わないようにと 今の利用規約は知りませんが自分の知っているときは 箱庭系、チャット系、CGIゲーム系はだめですね。 >modによりperlの難点であった実行速度も改善されていますし。 CGIモードとmod_perlのそれぞれバージョンで挙動が違うみたいで 普段はあまり利用しないですね。

Oh-Orange
質問者

お礼

回答有り難うございます。 >Cのコンパイルはどうする気ですか? これはアップロードする側がコンパイルして exe をアップすればよいと 安易に考えていただけです。だから C言語、Perl、PHP などがすべて 使えるようにすればと身勝手に考えてしまいました。 サーバー管理者からすれば Perl、PHP の環境を整えるのに手間がかかる事を 忘れていました。全サーバーに PHP などをインストールするんですね。大変だ。 >PerlもPHPも使えるサーバも結構ありますよ。 これは最近になって増えてきたということでしょうかね。 infoseek は Perl だけだね。 本音は CGI を始めるなら PHP を使ってみたかったけど。 >箱庭系、チャット系、CGIゲーム系はだめですね。 具体的な内容を有り難うございます。 チャットって処理が重くなるんですか?知らなかった。 ゲームは処理が重くなるのは分かります。 この回答のおかげでスッキリしました。 有り難うございました。

その他の回答 (2)

回答No.2

1、perlは文字列を処理するために作られた言語です、cgi技術流行った時最もcgiに適した言語です。 2、ほかにもいろいろあると思いますがperlはコンパイルしない解釈実行型言語なので、サーバーのセキュリティー面管理しやすいからでしょう。 3、たぶんメンバー登録時の契約に書いてあります、あんまり重いと怒られます。

Oh-Orange
質問者

お礼

回答有り難うございます。 >1、perlは文字列を処理するために作られた言語です… 文字列処理が優れているという事ですね。 >2、…perlはコンパイルしない解釈実行型言語なので、… なるほどです。 確かにスクリプトの方が手軽です。 >3、たぶんメンバー登録時の契約に書いてあります、あんまり重いと怒られます。 どの程度の処理が重くなるのかを知りたかったのです。 つまりはどんな処理を何秒、何分続けるのはまずいとか。 回答有り難うございました。

  • okg00
  • ベストアンサー率39% (1322/3338)
回答No.1

(1) C言語はコンパイルが必要だし、ポインタで間違ってしまうとOSを巻き込んでクラッシュしてしまう。メモリリークする可能性もある。PHPはperlに比べると新しいので普及に時間がかかる。 (2) perl自体が普及してしまっているので、わざわざPHPに対応する意味が無い。 modによりperlの難点であった実行速度も改善されていますし。

Oh-Orange
質問者

お礼

回答有り難うございます。 >C言語はコンパイルが必要だし、ポインタで間違ってしまうとOSを巻き込んでクラッシュしてしまう。 >メモリリークする可能性もある。PHPはperlに比べると新しいので普及に時間がかかる。 あっ。確かに不正なポインタによる不具合はまずいですね。 メモリリークの事も考えるとスクリプトの方が安全か。 >perl自体が普及してしまっているので、わざわざPHPに対応する意味が無い。 やはりこれが一番大きいんですね。 実行速度も今の時代では特に問題はないね。 すごく分かりやすかったです。→ポインタ…OSを巻き込み…の例えが。 回答有り難うございました。

関連するQ&A

  • SSI で #exec 以外で Perl-CGI を実行する方法は?

    最近 CGI に興味をもち Perl を始めました。 簡単なサンプルを無料サーバーにアップロードして cgi だけを 直接実行すると問題なく実行されます。 ですが SSI の #exec を使って HTML ソースに <!--#exec cgi="/cgi-bin/sample.cgi" --> と記述してページを開くと [an error occurred while processing this directive] と表示されてエラーになりました。 無料サーバーは infoseek で CGI/SSI は使えると書かれていたので 試してみました。それでもう一度確認の為に読んで見ると『#exec』は セキュリティ強化のため利用できないことが判明しました。 http://help.www.infoseek.co.jp/isweb/20602.html#7 質問内容: (1)CGI/SSI は使えるが #exec は使えない状況でどうやって Perl-CGI を   HTML ソースに記述して実行すればよいのか? (2)CGI は cgi-bin に置きパーミッションを 755 に設定しています。   設定は infoseek さんの指示通りです。他に設定すべき点ありますか? (3)Perl-CGI の1行目ではちゃんと『#!/usr/local/bin/perl』と記述しています。   こちらも infoseek さんの指示通りです。   Perl の記述で何か気をつけるべき点はありますか?バグ以外で。 (4)HTML ソースの拡張子は shtml にしています。   SSI を使うにはサーバーが対応していれば拡張子を変えるだけで使えるのですか? 今回の質問は Perl-CGI を HTML ソースに記述して実行する?には どうすべきかをお聞きしたいです。infoseek さんの情報は次のリンクです。 http://help.www.infoseek.co.jp/isweb/20601.html またネット検索していたら次のページを発見しました。 http://cocohome.hp.infoseek.co.jp/ssi/ ここの人は私と同じ infoseek で SSI 入門を書いています。 なぜこの方は SSI の #exec が使えるのでしょうか? この辺も知りたいです。 分かる方お願いします。 教えて下さい。

    • ベストアンサー
    • CGI
  • c言語とperlのcgi設定方法

    (Arch linuxにてlighttpdサーバを立ち上げています) cgiは一般にperlが多いとは思いますが、C言語からのcgiも試みています perlによるcgiを有効にするにはlighttpd.confの設定に以下を追加  server.modules += ( "mod_cgi" )  cgi.assign = ( ".cgi" => "/usr/bin/perl")  static-file.exclude-extensions = ( ".cgi" ) C言語から作成したcgiを有効にするにはlighttpd.confの設定に以下を追加  server.modules += ( "mod_cgi" )  cgi.assign = ( ".cgi" => "")  static-file.exclude-extensions = ( ".cgi" ) 同一のサーバ下で「"/usr/bin/perl"」「""」ともにを有効にする設定方法はありますでしょうか よろしくお願いいたします

  • CGI-PerlとPHPの速さについて

    CGI-PerlとPHPの比較サイトを見てまわっていたところ、 「PHPは多くのアクセスがあっても(CGIに比べ)サーバへの負荷が少ない」 という内容を見かけました。 一般に「PHPはCGI-Perlより速い」と言われている気がしますが、 もしかしてそれは、アクセスが多数ある場合に限定した話なのだろうか、と疑問に思いました。 ローカルサーバなどで1人~数人しかアクセスしないという環境でも、 同じことが言えるのかどうか知りたいです。お願いします。

  • windows上でC言語のCGI環境について

    sea_clear_sky8です。 Windows上でC言語によるCGIを使える環境を作りたいです。 <環境> OS Windows98SE APACHE1.3 Boland BCC55 コンパイラ  APACHE1.3とBoland BCC55 コンパイラはインストールしてあります。 C言語の環境はPHPとPerlの環境と共存できるのでしょうか? PHPとPERLの環境も作ってあります。 C言語でも、PERLみたいに、コンパイルをし、ブラウザに出力する環境が つくれるのでしょうか? httped confのファイルに次を追加すると LoadModule cgi_module module/mod_cgi.so Cannot load c:/program files/apache group/apache/module/mod_cgi.so into server (1157) このアプリケーションの実行に 必要なライブラリ ファイルのうちの 1 つが見つかりません。: と表示されます。 Yahoo,Google、MSN等で調べましたが、解決方法がみつかりませんでした。 Windows上でのC言語によるCGIの作り方をご教授願います。 よろしくお願いします。

    • 締切済み
    • CGI
  • perl cgi, パスワード可能なレンタルサーバ

    従来ジオシティーズでperl CGIを作っていました。 しかしジオシティーズではパスワードによるアクセス制限ができないことがわかりました。 パスワード管理(たとえば.htaccessなどによる)が可能でperl cgiが動くレンタルサーバはないでしょうか? 絶対条件としては、サーバに作成したデータベースの所有権がユーザ側にあることや、サーバとしての信頼性です。ですので、無料サーバよりむしろ有料であって、サーバのダウンが極力なくセキュリティーもしっかりしているところの方がよいです。 なんらかのSQLデータベースもCGIから使えれば好ましいです。 そういったレンタルサーバをご紹介ください。

    • ベストアンサー
    • CGI
  • Perl/CGIを学んでいるのですが

    Perl/CGIを独学で学んでいます。 掲示板やチャットが作成できる程度です。 私はPerl=CGIと考えていたのですが(HTMLがサイト作成に使うことのように専用の言語とでもいいましょうか)、ぜんぜん違うようです。 PerlはCGI以外に Perlではどのようなことができるのでしょうか? 大まかな認識だと ビィジュアルを持たない、(VBでいうフォームパーツですかね)バッチファイルなど? で、コマンドプロンプトで動作するようなイメージがありますが(.batを起動するとメモ帳みたいなアプリではなく、特定の処理して終了みたいな) 無知な私にPerlで出来ることをお教えください。 せっかくPerl/CGIが少しは理解できているのでPerlをもっと勉強しようかとあぐねいているとこらです。 混乱しているため変な質問でしたらすいません

  • CGIタイプのPHPとは・・・?

    PHPのCGIタイプとはどのようなものなのでしょうか? 借りているレンタルサーバーで普段はxxx.php(xxxはファイル名) として使用していますが、このバージョンがphp4.2.2なのです。 それで、php5のコマンドを使用する必要性が出てきたのですが、当然、xxx.phpでは使用できません。 が、レンタルサーバーのマニュアルに、 「PHP5はCGIタイプで使用できます。SSIタイプではPHP4となります。PHP5をご利用の場合、PHP5で記述したスクリプトの一行目に#!/usr/bin/php5 または #!/usr/local/bin/php5 と記述して下さい。CGIタイプのPHPの場合、拡張子はCGIに準じます。」 とあります。 質問 1.このCGIタイプのPHPとは、拡張子が.cgiというだけで中身がphpの記述なのでしょうか?(しかし1行目に記述する#!/usr/bin/php5の記述はperlのような気もします)。 もしくはPHP5を利用したい場合はperlで記述するということでしょうか(意味不明ですが)?? 2.あと後学のために教えてほしいのですが、私が普段使用している.phpはSSIタイプとのことですが、マニュアルに 「SSIタイプのPHPの場合PHPファイルの拡張子を.phpまたは.php4にして下さい。これらの拡張子のファイルだけがPHPファイルとして処理されます。また、拡張子が「.phps」のファイルは、phpソースとして処理されます。」 とあります。これはhtmlコードの中に<?php~?>を記述できるからSSIタイプと言っているのでしょうか?(私は普段はphpコードでhtmlを生成しています)。 あと、phpソースとはどのような処理のことを言うのですか? 初心者的な質問ばかりですみません。どうしてもPHP5を利用したいのでお教えいただければと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • CGI(perl)って・・・

    どんな感じで使ってます? あれはプログラム言語として使ってます? あの分かりにくい記号を覚えて使うものなんですか? 今まで(と言うか今も)COBOLとJAVAを 使ってきたんですが、なんかパズルのように組み合わせる パールのCGIになじめないっす・・・ どんな感じで使ってるか教えてください! やっぱ(命令文みたいなの、笑)覚えて作ってます? それとサンプルを埋め込んで使うんですか? だれでも良いんで参考までに 教えてぇぇぇぇ!同業者でCGI詳しい人もヨロシク☆

    • ベストアンサー
    • CGI
  • CGIに用いる言語について

    現在Perlを用いてCGIを作成しています。 ところが多人数で開発をしているため、他人の書いたコードの編集に時間がかかってしまいます。Perlというのは人の書いたものは非常に読みづらいですね(^^; そこで、文法に自由度があまりないなどの、多人数向きの言語に変更することを考えています。 実行速度は多少遅くても構いませんし、複雑な処理をするわけでもありません。 あくまで開発のしやすさに重点をおきたいです。 Ruby, PHP, Pythonなどを考えていますが、数ある言語の中でどれが多人数開発向きでしょうか?

  • PerlとphpのCGI版

    Perlは文書に最適化された言語だと今日知りました。 そこで思ったのですが、PerlとphpのCGI版の場合だと ファイルの読み書きなどを考えてみたところ、速度にさほど違いはないのでしょうか? mod_perlとphpのモジュール版の速度は同じくらいだと聞きます となればphpのCGI版はさほど早くなく、Perlと同程度じゃないかと思ったわけです どなたか教えてください!

専門家に質問してみよう