CGIを使う

CGIを利用して、魅力的なホームページを作ろう。

掲示板や、アクセス解析などが多くのホームページで利用されていますが、これらはたいてい CGI で作られています。 もちろん、自分で製作しても良いのですが、ここでは既存の CGI を自分のサイトで利用する方法を解説します。

CGI って何?

詳しい解説は省略して、ホームページに関連した点のみ説明します。 CGIとは、common gateway interface の略で、サーバ上で動くプログラムです。 例として、掲示板や、アクセス解析などがあります。 勉強してオリジナルのプログラムを作成することももちろんできますが、ここでは、既存の CGI プログラムを自分のサーバスペース上で動くようにする、ということを目標とします。

CGI を利用することのメリットは、訪問者からの情報にあります。 普通のホームページは、訪問者が閲覧するだけですね。 まあ、ときには感想などをメールでもらうかもしれませんが。 それに比べると、掲示板に代表される CGI は、訪問者からの書き込みが何よりの醍醐味ですね。 アクセス解析も、どこから訪問したか、何回目の訪問か、などの情報を得られるので、訪問者からの情報を受け取っていることになります。

今までの HTML が一方的に情報を発信するだけだったのに対して、CGI を用いることで双方向コミュニケーションが可能になります。 管理者の側にとっても、訪問者の側にとっても、非常に有益です。 もし今お使いのサーバが CGI を認めていない場合は、別のサーバに乗り換えるのもよいかもしれません。 レンタルサーバについては、「 初心者向けレンタルサーバの選び方」をご覧下さい。

パーミッションとは

Windows や Mac を利用している方ははじめて耳にするかもしれません。 パーミッションとは、UNIX でファイルに割り当てられている属性のことで、「読み込み」「書き込み」「実行」という 3 つがあります。 この属性をファイルの所有者が設定します。 自分に対して設定できるのはもちろんですが、他人にも設定できます。 例えば、「自分しか書き込みできないが他人も見ることができるファイル」、といったファイルが作成できます。 「所有者」「所有者の属するグループ」「他人」という 3 グループがあり、これらそれぞれについて、どの属性を割り当てるかを設定します。 「自分は読み込み、書き込みが可能、グループ内は読み込みのみ可能、他人は読み込み不可」というような設定ができるわけです。

ここまでなら、なにも難しくないですね。 問題は、設定の仕方にあります。 設定は、3 桁の数字を用いるので、ややこしく感じるかもしれませんね。 1 桁目が「所有者」を、2 桁目が「所有者の属するグループ」を、3 桁目が「他人」を示します。 これはまあいいでしょう。

問題は、数字が意味するものです。 以下のようになっています(CGI に関係するもののみ)。

「読み込み」可なら 4 点、「書き込み」可なら 2 点、 「実行」可なら 1 点で、合計点になっています。

よくみかける 755 の場合を例にすると、

になります。

CGI の場合は、CGI はプログラムなので、「実行」可になっている必要があります。 また、CGI を実行するのは普通は所有者ではないので、「他人」の権限で「実行」可になっている必要があります。 また、「他人」に勝手に書き換えられないように、「書き込み」不可にしておきましょう。 したがって、パーミッションは、755(または 705) にしておきましょう。 たいていのサーバは、このどちらかです。 ※最近ではSuExecといって、所有者権限でCGI実行するサーバーも増えています。 その場合は700になります。詳しくは利用しているサーバーの管理者にお問い合わせください。

CGI プログラムは、ほとんど全ての場合、データを保存するログファイルを使用します。 掲示板なら、書き込まれた内容を保存しておきます。 このファイルは、「他人」が書き込めるように、「書き込み」可に設定しましょう。 ログファイルはプログラムではないので、「実行」可にする必要はありません。 したがって、パーミッションは 666(または 606) にしておきましょう。

ログファイルが、ディレクトリ(Windows のフォルダに相当します)に保存される場合もあります。 この場合、ログディレクトリのパーミッションは「実行」可に設定する必要があります。 ディレクトリの場合は、ディレクトリの内部を見るために、「実行」可である必要があるからです。 また、ログファイルに書き込むので、ディレクトリも「書き込み」可にしましょう。 したがって、パーミッションは、777(または 707) にしておきましょう。

プログラムのパスとは?

CGI プログラムをテキストエディタで表示すると、1 行目に

#!/usr/bin/perl

などと書いてあると思います。 これは、プログラムを実行するプログラム言語がどこにあるか、ということが書かれています。 Windows の C:\Program Files といった表記に対応しています。 たいていの場合、#!/usr/bin/perl#!/usr/bin/local/perlになっていますが、サーバにより異なる可能性があるので、詳細はサーバー管理者にお問い合わせください。

CGI を設置する場合には、以上のことを確認しておけばうまくいくと思います。 CGIリンク集 も参考にしてください。


新着記事
人気記事ベスト3
全てのホームページ製作者に
アフィリエイトで稼ぐ方法
サーチエンジン最適化
携帯サイトの作り方
レンタルサーバの選び方
ホームページ作成ソフト
python入門
パソコン便利グッズ