インターネットにホームページを公開したら、まずはひと安心ですね。
GOOD JOB!!! (「ラボちゃん、なんかごホウビないの?」)
←ヒポくん、露出の少なさにあせりが・・・
まだまだ。ここで終わっちゃあダメダメ。
これからご紹介するCGIスクリプトを使えば、ホームページがもっともっとアップグレードするぴょん。
CGIってなに?
CGI(Common Gateway Interface)とは、ブラウザからの要求に応じて、サーバに置かれたプログラムを実行させる仕組みのことです。単なるホームページは情報を発信するだけですが、CGIを利用すれば、訪問者からコメントや情報などを受信するインタラクテイブ(対話型)なホームページに変身させることができます。
CGIは、Perl、awk、sh などコンパイル作業が不要なスクリプト言語で記述されたものをいいます。CGI プログラムは Perl で記述されたものが多いですが、基本的に標準入出力を備えているプログラミング言語であれば(たとえばC言語やシェルスクリプトでも)CGIプログラムを記述することは可能です。
CGIは、さまざまな用途に使われています。例えば、
- アクセスカウンタ
ホームページへのアクセス数を表示するためのCGIスクリプト。よく「あなたは○○○○○人目の訪問者です」を見かけますよね。数字だけのシンプルなものから、グラフィックで多機能のものまでいろいろあります。
- 掲示版
ホームページにアクセスしてくれた人が感想やコメント、メッセージを書き込むためのツール。いろんな人に出会うチャンスが広がるものの、セキュリテイ上のトラブルが発生しやすい問題点もあります。
- チャット
ネットワークでつながれた人々とリアルタイムで文字によるチャット(おしゃべり)を楽しむことができます。ただし、サーバに負担をかけるCGIスクリプトなので、使用を禁止しているところも多いです。弊社でも、VolanoChat(有料)以外は使用を禁じています。
- ショッピングカート
インターネット上でショッピング販売をおこなう「買い物カゴ」システム。複数の商品の計算や注文がカンタンにできます。商品の販売をお考えの方には必須のアイテム。セキュア・サーバと併用すると効果的です。
- アクセス解析
ホームページへのアクセスをテーマ別に分析します。訪問者の傾向を知り、アクセス向上をはかるのに便利です。
上記以外にも用途があります。CGIプログラム配布サイト等をチェックしてみてください。
「ウソつけ!」
パーミッション
CGIスクリプトをホームページに組み込むまえに、ファイルやデイレクトリの「パーミッション」について知っておく必要があります。この設定が正しくないと、CGIプログラムがサーバマシン上でうまく作動しません。
パーミッション(原義は「許可」)とは、ファイルやデイレクトリへのアクセス権限(特定のファイルやデイレクトリに対して特定のことをしてもよい権限)を指します。例えば、HTMLファイルは「644」(rw-r–r–)、CGIファイルは「755」(rwxr-xr-x)という数字と英文字でよく表されます。
この不可解な(?)数字と英文字についてもっと詳しく説明しましょう。
まず、各ファイルやデイレクトリには、以下のように「r」「w」「x」「-」の属性が与えられています。
属性 | 権限 | 数値 | 権限の解説 |
---|---|---|---|
r (read) | 読み込み可能 | 4 | プログラムからファイルを読み出したり、ファイルをブラウザに表示するために必要な権限 |
w (write) | 書き込み可能 | 2 | プログラムからファイルに書き込むために必要な権限 |
x (execute) | 実行可能 | 1 | プログラムでファイルを実行するために必要な権限 |
– | 権限なし | 0 | 権限が与えられていないので何もできない |
あるファイルが読み込みと書き込み可能なら、そのファイルの属性は「rw-」=「4 + 2 + 0 = 6」となります。すべて可能なら、「rwx」= 「4 + 2 + 1 = 7」となります。読み込みと実行はできても書き込みができないファイルは、「r-x」= 「4 + 0 + 1 = 5」 となります。
こう考えると、HTMLファイルは、基本的に読み込めればいいので「r–」=「4 + 0 + 0 = 4」、CGIプログラムは、読み込めて実行する必要があるので「r-x」= 「4 + 0 + 1 = 5」、プログラムで使うデータファイルは、読み込めて書き込む必要があるので「rw-」=「4 + 2 + 0 = 6」となるのがふつうです。
つぎに、「rw-r–r–」や「rwxr-xr-x」などの9文字の配列ですが、これにも次のような意味があります。
属性 | 権限者 | 権限者の解説 |
---|---|---|
最初の3文字 | 本人 (Owner) | ホームページ作成者のこと |
次の3文字 | グループ (Group) | 所属グループを指します。また、追加FTP、SSHアカウントなどが該当します。ここで追加アカウントに対する権限を適切に設定します |
最後の3文字 | その他 (Other) | 訪問者といった他のユーザーによるブラウザからのアクセスに相当します |
したがって、HTMLファイル「644」の場合、
権限者 | 属性 | 数値 | 権限の内容 |
---|---|---|---|
本人(Owner) | rw- | 4 + 2 + 0 = 6 | 読み込みと書き込みが可能 |
グループ(Group) | r– | 4 + 0 + 0 = 4 | 読み込みだけ可能 |
その他(Other) | r– | 4 + 0 + 0 = 4 | 読み込みだけ可能 |
となり、同様に、CGIファイル「755」の場合、
権限者 | 属性 | 数値 | 権限の内容 |
---|---|---|---|
本人(Owner) | rwx | 4 + 2 + 1 = 7 | すべて可能 |
グループ(Group) | r– | 4 + 0 + 1 = 5 | 読み込みと実行が可能 |
その他(Other) | r– | 4 + 0 + 1 = 5 | 読み込みと実行が可能 |
となります。