- 制作者(webmaster)
- 野嵜健秀(Takehide Nozaki)
- 初出
- 「kotobaseek」
- 公開
- 2000-08-29
- 改訂
- 2003-03-28
CGIスクリプト利用上の注意
基礎知識
CGIは、本来、Webサーヴァと外部プログラムとを連携させるための仕組を指します。現在は、転じて、外部プログラムそのものを指す事があります。ここでは、ウェブサーヴァ上でデータの(入力・)処理・出力を行ふプログラム一般を指す事とします。
- 一般のHTML文書がアクセスされた場合、サーヴァは単純にファイルを閲覧者に送出します。
- CGIがアクセスされた場合、サーヴァは、ユーザからのデータを受取り、そのデータをもとにサーヴァ内で処理を行ってから、結果をHTML文書に加工して送出します。
CGIはプログラムです。プログラムの作り方によって幾らでも用途は出来ます。
- 検索エンジンCGIは、ウェブ閲覧者から送出されたデータをもとに、データベースを検索し、結果を表示します。
- 掲示板CGIは、閲覧者から送出された書込みをサーヴァ上に記録し、一覧にして表示します。
- アクセスカウンタCGIは、閲覧者がアクセスした事を記録し、その数値を表示します。
その他、色々な種類のCGIがあります。
注意点
- サーヴァ内の処理が複雑になるので、CGIの設置にミスをすると、システムに障碍を惹起す可能性があります。問題のあるCGIスクリプトが設置・駆動された場合、最悪、CGIサーヴァがシステムダウンします。CGIは、ローカルの環境で問題の起らない事を確認してから、サーヴァに設置しなければなりません。
- メモリやCPUリソース等を大量に消費する「重い」CGIは、サーヴァに過剰な負荷をかけます。ゲームの「箱庭諸島」やウェブベースの「チャット」は、「重い」CGIなので、他のユーザに迷惑をかける場合があります。この手のCGIはレンタルサーヴァに設置すべきではありません。
- ウェブで配布されるフリーのCGIは、大抵の場合、そのまま使用出来ません。殆どの場合、設置するサーヴァの設定に基いて、スクリプトの記述を修正する必要があります。
- 出力されるHTML文書をカスタマイズしたい場合、スクリプトの手直しが必須となります。スクリプトを修正した場合、その結果として何らかの問題が生じはすまいか、再設置以前にCGIの動作を確認する必要があります。
そもそも、CGIは「設置する事に意義がある」ものではありません。自分のサイトで使用する必然性があるのかどうか、を良く考慮の上、ウェブ制作者はCGIを選択・採用・利用すべきです。
検索サイトを個人で運営すべきか、掲示板を沢山設置して管理し切れるのか、アクセスログをとってどうするのか、などなどの問題点を、制作者は良く検討して下さい。
言語
CGIは、多くの場合、Perlで作成されます。別にCGIはPerlでなくとも良いのですが、CGIにPerlがよく使用されるのには理由があります。
- Perlはテキストの処理に特化し、テキストベースのウェブ環境と相性が良い。ウェブでは多くのデータがテキストデータ。
- UNIXをOSに採用したサーヴァでは、多くの場合、Perlの実行環境が導入ずみで、すぐに利用できる。Perlのスクリプトは汎用性がある。
CGIは、別にPerl以外の言語で作成されても(サーヴァで動くのならば)問題はありません。また、目的によって、一般的なCGI以外の方法でも、ダイナミックな、あるいはインタラクティヴなウェブサイトは作れます。
- WindowsNT Serverなどでは、ASPが良く使用されます。Win32アプリケーションのCGIもあり(得)ます。
- SQLを利用出来る場合もあります。
- Linuxでは最近、Rubyが流行で、当然、RubyによるCGIスクリプトも存在します。実際に利用可能なサーヴァは限られます。
- Mac ServerではハイパーカードによるCGIすら使用可能です。もっとも、Macをサーヴァにしたサイトは滅多にありませんし、一般ユーザにCGIサーヴァとして解放したホスティングサーヴィスは(恐らく)皆無です。
制作者の方は、CGIを採用する前に、ほかの手段も研究・比較して、いろいろ検討してみて下さい。
ただ、申し訳ないのですが、これ以上、CGI関係の記事は、PC Tipsにはありません。興味のある人は、それなりのサイトを探して、調べて下さい。