CGIの設置と設定
スクリプトを用意する
一般的にはperlで書かれたスクリプトが多用されていますが、サーバーが実行出来れば言語は何でもかまいません。
スクリプトは自分で書くか、フリーウェアやシェアウェアのダウンロードサイトから引っ張って来る事になります。
スクリプトは自分で書くか、フリーウェアやシェアウェアのダウンロードサイトから引っ張って来る事になります。
サーバーの条件を調べる
CGIを動かすことが出来るサーバーでなければ無意味ですが、CGI可であっても条件はそれぞれ異なります。中には様々な規制がある場合(日本のサーバーは特に)がありますので、先にルールを確認しておきましょう。
スクリプトの1行目に書かれたperlまでのパスも確認しておきましょう。
例)
- CGIを置くディレクトリに制限がある。(cgi-bin以下に限るなど)
- CGIの種類に制限がある。(チャット不可など)
- 他サーバーからの呼出禁止。
- .htaccessファイルが必要な場合。
- 拡張子は.cgiに限る。
スクリプトの1行目に書かれたperlまでのパスも確認しておきましょう。
例)
#! /usr/local/bin/perl
スクリプトの編集
スクリプトを書くにはエディタが必要です。私は基本的にEmacsを使用しますが、テキストが書ければ何でも構わないでしょう。Windowsの方はMeadowというEmacsのクローンがあります。
スクリプトはその機能や用途によって様々で一概には言えませんが、比較的よく行う初期設定は以下のようなものと思われます。
特に指定がない場合、これらの記述はCGIを置くディレクトリから見た相対パスで書くのが普通です。
スクリプトはその機能や用途によって様々で一概には言えませんが、比較的よく行う初期設定は以下のようなものと思われます。
require './jcode.pl';スクリプトが必要とする外部プログラムを呼び出す際のパスを相対記述します。他にcgi-lib.plもよく使用します。
$log = './log.dat';スクリプトが開閉するファイルまでのパスを記述します。
特に指定がない場合、これらの記述はCGIを置くディレクトリから見た相対パスで書くのが普通です。
$ENV{'TZ'} = 'GMT';
タイムゾーンの指定です。とりあえずGMT(グリニッジ標準時)にしておけば、国外サーバーに移転しても困らないでしょう。
$ENV{'TZ'} = 'GMT';
$times = (time + 9 * 60 * 60); #GMT+9時間=JST
現地のローカルタイムに加減して日本時間を求めた場合、現地に夏時間があると修正が必要になります。$method = "post"; #または"get"データをデコードする際に、入力された情報をどこから受け取るかの問題です。
if($method eq "post") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
と書いておけば、どちらでもいいでしょう。但し、引数を直接渡したい場合はgetです。アップロード
現在、世界のWEBサーバーの殆どはUNIXです。このため、UNIX以外のOSをお使いの場合、改行コードは全て<LF>に合わせておく必要があります。
改行コードを合わせる必然性から、スクリプトのアップロードはASCII形式で行ってください。
改行コードを合わせる必然性から、スクリプトのアップロードはASCII形式で行ってください。
スクリプトがアーカイブ(圧縮ファイル)の場合
解凍・展開してからWEBサーバーに送ります。
UNIXのプログラムは一般的にソースコードをコンパイルする必要がありますが、CGIについてコンパイルの必要はありません。
UNIX標準のアーカイブ形式である".tar.gz"もしくは".tgz"の場合は # tar zxvf を使用して展開します。
UNIXのプログラムは一般的にソースコードをコンパイルする必要がありますが、CGIについてコンパイルの必要はありません。
UNIX標準のアーカイブ形式である".tar.gz"もしくは".tgz"の場合は # tar zxvf を使用して展開します。
パーミッション(許可属性)
HTMLやJava Scriptと違い、CGIはサーバー上で動作します。このため実行(=動作)を許可する"x"の設定が必要です。
r = ファイルを読み出す許可。(4)
w = ファイルに書き込む許可。(2)
x = ファイルを実行する許可。(1)
-rwxr-xr-x = 0755
オーナー権限 = 読む、書く、実行する
グループ権限 = 読む、書く
nobody権限 = 読む、書く
r = ファイルを読み出す許可。(4)
w = ファイルに書き込む許可。(2)
x = ファイルを実行する許可。(1)
-rwxr-xr-x = 0755
オーナー権限 = 読む、書く、実行する
グループ権限 = 読む、書く
nobody権限 = 読む、書く
[ CGI Top ]
[ BACK ]
[ Reference Top ]
[ NEXT ]
[ HOME ]