ご利用マニュアル

ご利用マニュアル
―CGI 編―
平成12年12月
アクセスカウンター・掲示板・チャットルームなどをホームページ上に設置する場合は、
CGI または SSI をご利用頂く形になります。 smartAVENUE ではお客様が作成された
CGI・SSI や、インターネット上で配布されている CGI・SSI、 弊社がご用意したサンプ
ル CGI(現在、簡易アクセスカウンターとフォームメールのみ)などを自由にご利用頂け
ます。
1
CGI
CGI は、アクセスカウンターや掲示板を設置する場合によく利用されます。
HTML に比べ若干設置方法は難しくなりますので、以下の情報をよくお読み頂いた上で設
置を行って下さい。
● 対応言語
CGI の作成にご利用頂ける言語は perl・C・シェルスクリプトの 3 種類です。 その他の言
語には対応しておりません。
C 言語を使用した CGI の場合は、あらかじめ Linux 用にコンパイルしたバイナリファイル
をアップロードして下さい。
● 各種プログラムのパス
以下のプログラムをご用意しております。CGI からこれらのプログラムを呼び出してご利
用頂く事が出来ます。
perl
/usr/bin/perl または /usr/local/bin/perl
sendmail
/usr/lib/sendmail
uuencode
/usr/bin/uuencode
uudecode
/usr/bin/uudecode
nkf
/usr/local/bin/nkf
なお、perl の CGI スクリプトの 1 行目に perl のパスを記述する場合は、 #!/usr/bin/perl
または#!/usr/local/bin/perl と記述して下さい。
● CGI ファイルの転送
CGI をサーバーに転送する時は、必ず管理者用アカウント(admin)を使用して FTP 接続
し、転送を行って下さい。 また、CGI ファイルは/cgi-bin ディレクトリ内に転送しないと
動作しない様になっています。 ブラウザから呼び出して実行させる CGI は、必ず/cgi-bin
1
ディレクトリの中に置いて下さい。
ほとんどの FTP ソフトには、バイナリモードとアスキーモード(テキストモード)という
2種類の転送モードがありますが、 CGI のファイルを転送する場合は必ずアスキーモード
で転送して下さい。 バイナリモードで転送すると正常に動作しない場合がございます。
● ディスク容量不足時のデータ消失
使用しているディスク容量がご契約容量を越えてしまい、容量が不足している時に CGI が
データファイルに書き込みを行うと データファイルが破損して内容が消失してしまう場
合がございます。 このため、アクセスカウンターや掲示板の様なデータファイルにデータ
を書き込むタイプの CGI のご利用になる場合は、 必ず十分な空き容量を確保する様にして
下さい。
● パーミッションの設定
サーバーにファイルを転送したら、パーミッションの設定を行って下さい。 パーミッショ
ンの設定が正しく行われていないと、CGI が正常に動作しなくなったり 第三者からの不正
なアクセスを受けてしまったりする可能性がございます。
パーミッションの設定はパーミッション変更機能のある FTP ソフトを使用して行って下さ
い。 smartAVENUE では Telnet がご利用頂けませんので、サーバーに Telnet で接続して
パーミッションの変更を行う事は出来ません。
通常、設定するパーミッションの値は CGI ファイルのドキュメントなどに記載されており
ますが、 smartAVENUE のサーバーでは所有者(owner)に読み取り権(r)と実行権(x)が設定
されている必要がございます。 また、所有者(owner)以外に書き込み権(w)が設定されてい
ると実行時にエラーになりますので、 特に差し支えがなければ CGI が置かれているフォル
ダのパーミッションは 705(rwx---r-x)、 実行させる CGI ファイルのパーミッションは
700(rwx------)、 書き込みを行うデータファイルのパーミッションは 600(rw-------)に設定し
て頂く事をお勧め致します。
● sendmail の使用
CGI でメールを送信する処理を行う場合は、サーバーに用意されている sendmail をご利用
頂く事が出来ます。 sendmail が置かれているサーバー上のパスは、 /usr/lib/sendmail で
す。 CGI スクリプト内で記述するコマンドの書式は、以下の様になります。
/usr/lib/sendmail -t -f(発信元アドレス)
2
(発信元アドレス)にはメールの発信元として使用するメールアドレスを入力して下さい。
通常はお客様ご自身のメールアドレスを設定して頂ければ差し支えございません。
例えば、発信元を [email protected] にする場合は
/usr/lib/sendmail -t [email protected]
と記述して下さい。
なお、smartAVENUE ではメールサーバープログラムに qmail を使用しておりますので、
実際には sendmail はインストールされておらず、sendmail は qmail へのリンクとなって
おります。 基本的には sendmail と同様な方法でご利用頂く事が可能ですが、 sendmail
のオプションは上記の様に「-t」と「-f(From アドレス)」のみをご使用下さい。
3
2
アクセスカウンター
弊社でご用意しているアクセスカウンターのご利用方法です。
● 設置方法
アクセスカウンターをご利用頂くには、以下の手順で設置を行って頂く必要がございます。
1.管理ツールの ADMIN MANAGER にアクセスして、サンプル CGI のダウンロー
ドから アクセスカウンターのファイル(counter2.lzh)をダウンロードして下さ
い。
ダウンロードした counter2.lzh を解凍して下さい。ファイルは LZH 形式で圧縮さ
れていますので、 LZH 形式の圧縮ファイルを解凍出来る解凍ソフトをご利用下さ
い。
ファイルを解凍すると、以下のファイルが生成されます。
Counter.cgi
アクセスカウンターの CGI スクリプトファイルです。
Counter.html サンプルの HTML 文書です。
.htaccess
HTML 文書の中でアクセスカウンターを表示させるために
必要なファイルです。
0.gif
・
・
アクセスカウンターに使用する数字の画像ファイルです。
・
9.gif
readme.txt
説明書です。サーバーにはアップロードしません
2.管理者用アカウント(admin)を使用してサーバーに FTP 接続を行い、ファイルを
転送して下さい。 counter.cgi は/cgi-bin ディレクトリへ、 その他のファイルは
/home ディレクトリへ転送して下さい。 なお、counter.cgi は必ず FTP ソフトの
転送モードをアスキーモードに設定して転送して下さい。 バイナリーモードで転
送すると、正常に動作しません。
3.counter.cgi のパーミッションを 700(rwx------)に設定して下さい。
4.ブラウザで http://(ドメイン名または IP アドレス)/counter.html を開き、 アク
セスカウンターが動作している事をご確認下さい。
4
● 任意の HTML ファイルにアクセスカウンターを表示させる方法
counter.html 以外の HTML 文書にカウンターを表示させる場合は、アクセスカウンターを
設置したい HTML 文書(index.html など)に 以下の SSI コマンドを記述して頂くと、そ
の部分にアクセスカウンターが表示されます。
<!--#include virtual="/cgi-bin/counter.cgi"-->
● カウント数を任意の値に変更する方法
アクセスカウンターのカウント数を任意の値に変更したい場合は、counter.dat をテキスト
エディタで編集し、中に書かれている数字を 設定したいカウント数に書き換えてサーバー
に上書き転送して下さい。 また、counter.bak が作成されている場合は転送を行った時に
削除しておいて下さい。
● データファイル
ア ク セ ス カ ウ ン タ ー の デ ー タ フ ァ イ ル は 、 CGI に よ っ て 自 動 的 に 作 成 さ れ ま す 。
counter.cgi を作成したディレクトリに、以下のファイル・ディレクトリが作成されます。
•
counter.dat
カウント数を記録しているデータファイルです。中に書かれている数字がそのまま
カウント数になります。
•
counter.bak
counter.dat のバックアップファイルです。counter.dat の値が 4 の倍数になるたび
に counter.dat の内容がこのファイルにバックアップされます。 counter.dat のデ
ータが何らかの原因で壊れてしまった場合はカウント数がこのファイルに書かれて
いる数値に修正されます。
•
counterdb
アクセスカウンターが設置されているページにアクセスがあった際に、アクセス元
の IP アドレスとその時点でのカウント数を記録した ファイルが置かれるディレク
トリです。このディレクトリの中に作成されたデータをもとに、再読み込み時のカ
ウント数加算防止処理が 行われています。
=ご注意=
アクセスが多いページの場合、counterdb ディレクトリ内のデータ容量が大きくなりディスク容
量を大量に消費してしまう場合がございます。 その場合は再読み込み時のカウント数加算防止
機能を無効にする方法に書かれている方法で この機能を無効にすれば counterdb ディレクトリ
とその中のデータファイルは作成されなくなります。
5
また、変数の説明に書かれている内容に従って counter.cgi に書かれている変数を調整して頂く
ことによっても ある程度ディスク容量の消費を抑えることが出来ます。
● 再読み込み時のカウント数加算防止機能を無効にする方法
同じページを続けて読み込んだ時にカウント数が加算されない機能を無効にしたい場合は
以下の様に counter.cgi の 5 行目の行頭に # を付けて、書き換えた counter.cgi をサーバー
にアップロードして下さい。
#$IPDB_DIR = 'counterdb'
● 変数の説明
counter.cgi に書かれている変数の説明です。通常これらの設定を変更する必要はございま
せんが、 アクセスカウンターの動作を細かく設定したい方はこちらをご覧頂き、変数の値
を書き換えてご利用下さい。
•
$COUNT_FILE
カウント数を記録するデータファイルのファイル名を指定する変数です。任意のフ
ァイル名を指定して下さい。
デフォルト値は counter.dat です。
•
$COUNT_FILE2
$COUNT_FILE で指定したデータファイルのバックアップファイルのファイル名
を指定する変数です。 任意のファイル名を指定して下さい。
デフォルト値は counter.bak です。
•
$IPDB_DIR
アクセス元の IP アドレスとその時点でのカウント数を記録したファイルが置かれ
るディレクトリ名を指定する変数です。 任意のディレクトリ名を指定して下さい。
デフォルト値は counterdb です。
•
$IPDB_TIMER_UNIT
同じ IP アドレスから複数回アクセスがあった場合に、およそ何秒間カウント数の
増加を防止するかを指定する変数です。 例えば、10 に設定されているとおよそ 10
秒間同じ IP アドレスからの再カウントを防止します。
デフォルト値は 600 です。
•
$IPDB_LIFETIME
$IPDB_TIMER_UNIT で指定した秒数の精度を決定する変数です。 この変数の値
を大きくすると$IPDB_TIMER_UNIT の精度が向上しますが、多数のファイルが作
6
成されるためディスク容量を多く消費します。 この変数の値を小さくすると
$IPDB_TIMER_UNIT の精度が低下しますが、作成されるファイル数が少なくなる
ためディスク容量の消費が少なくなります。
デフォルト値は 6 です。
•
$GARBAGE_COLLECTION_TIMER
$IPDB_DIR で指定したディレクトリの中にあるファイルのうち既に使用されなく
なったファイルを、 カウント数何回ごとに削除するかを指定する変数です。
デフォルト値は 100 です。
•
$IMAGE_DIR
アクセスカウンターの数字として使用する画像ファイルをどこのディレクトリに置
くかを URI で指定する変数です。 数字の画像ファイルを /home ディレクトリ以
外のディレクトリに置きたい場合にこの変数の値を変更して下さい。 例えば、
/home/image ディレクトリに画像ファイルを置く場合はこの変数の値を /image
として下さい。
デフォルト値は / です。
•
$IMAGE_MINI
アクセスカウンターの桁数を指定する変数です。桁数を変更したい場合にこの変数
の値を変更して下さい。
デフォルト値は 6 です。
7
3
フォームメール
弊社でご用意しているフォームメールのご利用方法です。
● 設置方法
フォームメールをご利用頂くには、以下の手順で設置を行って頂く必要がございます。
1. 管理ツールの ADMIN MANAGER にアクセスして、サンプル CGI のダウンロード
から フォームメールのファイル(formmail2.lzh)をダウンロードして下さい。
ADMIN MANAGER へのアクセス方法がご不明な場合は オンラインマニュアル 管理ツール - ADMIN MANAGER を ご参照下さい。
2. ダウンロードした formmail2.lzh を解凍して下さい。ファイルは LZH 形式で圧縮
されていますので、 LZH 形式の圧縮ファイルを解凍出来る解凍ソフトをご利用下
さい。
ファイルを解凍すると、以下のファイルが生成されます。
formmail.cgi
formcfg.txt
フォームメールの CGI スクリプトファイルです。
フォームメールの動作を設定するための設定ファイルです。
formmail.html 入力画面のサンプル HTML ファイルです。
formchk.html 入力内容確認画面のサンプル HTML ファイルです。
formerr.html
formthx.html
エラー画面のサンプル HTML ファイルです。
メール送信後に表示される画面のサンプル HTML ファイルで
す。
3. formcfg.txt をテキストエディターで開き、 1 行目・2 行目にある以下の 2 行に書か
れている admin@**.in*.smartave.ne.jp の部分を フォームから送信されるメール
の宛先となるメールアドレス(お客様のメールアドレス)に変更して下さい。 これに
よりホームページに投入された情報が下記のメールアドレスに発信されます。
$MAIL_SENDER = 'admin@**.in*.smartave.ne.jp';
$MAIL_TO = 'admin@**.in*.smartave.ne.jp';
4. 管理者用アカウント(admin)を使用してサーバーに FTP 接続を行い、ファイルを転
送して下さい。 formmail.cgi と formcfg.txt は/cgi-bin ディレクトリへ、 その他の
8
ファイルは/home ディレクトリへ転送して下さい。 なお、formmail.cgi は必ず FTP
ソフトの転送モードをアスキーモードに設定して転送して下さい。 バイナリーモー
ドで転送すると、正常に動作しません。
5. formmail.cgi のパーミッションを 700(rwx------)、 formcfg.txt のパーミッションを
600(rw-------)に設定して下さい。
6. ブラウザで http://(ドメイン名または IP アドレス)/formmail.html を開き、 フォ
ームメールが動作している事をご確認下さい。
● 任意の HTML ファイルにフォームメールを設置する方法
formmail.html 以外の HTML ファイルにフォームメールを設置する場合は、 HTML ファ
イルに以下の形式で<FORM>タグを記述して下さい。
<FORM METHOD="POST" ACTION="/cgi-bin/formmail.cgi">
<INPUT TYPE="******" NAME="項目 1">
<INPUT TYPE="******" NAME="項目 2">
<TEXTAREA NAME="項目 3">
・
・
・
<INPUT TYPE="submit"><INPUT TYPE="reset">
</FORM>
formmail.cgi は <FORM> タ グ の 中 に あ る す べ て の 入 力 フ ォ ー ム タ グ (<INPUT> ・
<TEXTAREA>など)の入力内容を読み取り、 その内容をメールで送信します。<FORM>
タグをいくつも記述してしまうと内容が正しく送信されませんので、<FORM>タグは 1 つ
だけ記述し、その中にすべての入力フォームタグを記述して下さい。
入力フォームタグの記述方法がご不明な場合は、サンプルの formmail.html の内容を参考
にして記述して頂くか、 HTML の書式について解説されている書籍などをご参照下さい。
● 入力項目のカスタマイズ
入力項目は、以下の点をカスタマイズする事が出来ます。
•
項目の並び順
•
項目名の設定
9
•
必須入力項目の設定
•
メールアドレス入力項目の設定
それぞれのカスタマイズ方法は以下の通りです。
[項目の並び順]
項目の並び順]
送信されて来るメールや、入力内容確認画面で表示される項目の並び順を任意の順
番に変更する場合は、 1 つ目の入力フォームタグの NAME オプションを a、 2 つ
めの入力フォームタグの NAME オプションを b、 3 つめの入力フォームタグの
NAME オプションを c・・・の様に、 入力フォームタグの NAME オプションをア
ルファベットで指定して下さい。
入力した内容がメールの本文に書かれる順番は、HTML ファイル内での入力フォー
ムタグの順番ではなく、 各入力フォームタグの NAME オプションをキーとしたア
ルファベット順に並べ替えられます。 上記の様に NAME オプションを記述して頂
く事により、メールの本文に書かれる順番を制御する事が出来ます。
ただし、このままでは項目名が入力フォームタグの NAME オプションに書かれて
いる内容(a・b・c・・・)になってしまいます。 項目名を任意に指定したい場合は、
項目名の設定に書かれている方法で項目名の指定を行って下さい。
[項目名の設定]
項目名の設定]
送信されて来るメールや、入力内容確認画面で表示される項目名を任意の名前に変
更する場合は、 入力画面となる HTML ファイルの<FORM>タグの内側に以下のタ
グを記述して下さい。
<INPUT TYPE="hidden" NAME="OPT:JPNAME:[NAME]" VALUE="[項目名]">
[NAME]の部分は項目名を変更する入力フォームタグに書かれている NAME オプ
ションの値に置き換えて下さい。 [項目名]の部分は変更する項目名に置き換えて下
さい。
例えば、<INPUT TYPE="text" NAME="abc">という入力フォームタグの項目名を
お名前に設定する場合はこの入力フォームタグとは別に、以下のタグを記述します。
<INPUT TYPE="hidden" NAME="OPT:JPNAME:abc" VALUE="お名前">
10
なお、必須入力項目やメールアドレス入力項目の項目名を変更する場合は上記の方
法ではなく、 後述の必須入力項目・メールアドレス入力項目の解説に記載されてい
る方法で項目名を設定して下さい。
[必須入力項目の設定
必須入力項目の設定]
特定の項目を必須入力項目(必ず入力しなければならない項目)に設定する場合は、
入力画面となる HTML ファイルの<FORM>タグの内側に以下のタグを記述して下
さい。
<INPUT TYPE="hidden" NAME="OPT:NEED:[NAME]" VALUE="[項目名]"
[>NAME]の部分は入力フォームタグに書かれている NAME オプションの値に置き
換えて下さい。 必須入力項目に設定した場合、あわせて項目名の変更を行う事が出
来ますので、 [項目名]の部分は変更する項目名に置き換えて下さい。
例えば、<INPUT TYPE="text" NAME="abc">というタグを必須入力項目にして、
項目名をお名前に設定する場合はこのタグに加えて以下のタグを記述します。
<INPUT TYPE="hidden" NAME="OPT:NEED:abc" VALUE="お名前">
必須入力項目に何も入力されていなかった場合、エラー画面(formerr.html)が表
示される様になります。
[メールアドレス入力項目の設定]
メールアドレス入力項目の設定]
特定の項目をメールアドレス入力項目(メールアドレスを入力しなければならない
項目)に設定する場合は、 入力画面となる HTML ファイルの<FORM>タグの内側
に以下のタグを記述して下さい。
<INPUT TYPE="hidden" NAME="OPT:MAILADDRESS:[NAME]" VALUE="[項
目名]">
[NAME]の部分は入力フォームタグに書かれている NAME オプションの値に置き
換えて下さい。 メールアドレス入力項目に設定した場合、あわせて項目名の変更を
行う事が出来ますので、 [項目名]の部分は変更する項目名に置き換えて下さい。
例えば、<INPUT TYPE="text" NAME="abc">というタグをメールアドレス入力項
目にして、 項目名をメールアドレスに設定する場合はこのタグに加えて以下のタグ
11
を記述します。
<INPUT TYPE="hidden" NAME="OPT:NEED:abc" VALUE="メールアドレス">
メールアドレス入力項目に正しいメールアドレスの形式で文字が入力されていなか
った場合、 エラー画面(formerr.html)が表示される様になります。
動作のカスタマイズ
以下の点について、フォームメール CGI の動作をカスタマイズする事が出来ます。
・入力内容確認画面を表示する機能の使用/不使用
・入力項目のカスタマイズを行う機能の使用/不使用
・複数のフォームメールを使用する機能の使用/不使用
初期状態ではすべての機能を使用する設定になっていますので、これらの機能を使
用するために設定を変更する必要はございません。 上記の機能を不使用にしたい場
合のみ、以下の方法で設定を行って下さい。
[入力内容確認画面を表示する機能の使用/
入力内容確認画面を表示する機能の使用/不使用]
不使用]
入力内容確認画面を表示する機能を不使用にする場合は、以下の様に formcfg.txt
に 書 か れ て い る $OPT_USE_CONFIRM の 値 を 0 に 書 き 換 え て 下 さ い 。
$OPT_USE_CONFIRM の値が 0 以外(通常は 1)になっている場合に入力内容確認
画面を表示する機能が働く様になっています。
$OPT_USE_CONFIRM = 0;
[入力項目のカスタマイズを行う機能の使用/
入力項目のカスタマイズを行う機能の使用/不使用]
不使用]
入力項目のカスタマイズを行う機能を表示する機能を不使用にする場合は、以下の
様に formcfg.txt に書かれている $OPT_CHECK_VALUE の値を 0 に書き換えて下
さい。 $OPT_CHECK_VALUE の値が 0 以外(通常は 1)になっている場合に入力内
容確認画面を表示する機能が働く様になっています。
$OPT_CHECK_VALUE = 0;
[複数のフォームメールを使用する機能の使用/
複数のフォームメールを使用する機能の使用/不使用]
不使用]
12
複数のフォームメールを使用する機能を不使用にする場合は、以下の様に
formmail.cgi に書かれている $USE_OTHER_CONFIG_FILE の値を 0 に書き換え
て下さい。 $USE_OTHER_CONFIG_FILE の値が 0 以外(通常は 1)になっている
場合に複数のフォームメールを使用する機能が働く様になっています。
$USE_OTHER_CONFIG_FILE = 0;
複数のフォームメールを設置する方法
複数のフォームメールを設置する場合は、1 つ目のフォームメールを通常と同様の
方法で設置した上で、以下の手順で 2 つ目のフォームメールの設置を行って下さい。
1. formcfg.txt をコピーして、別の名前で保存して下さい。 (以下の説明は
formcfg2.txt という名前にしたものと仮定して行います。
)
2. formcfg2.txt をテキストエディタで開き、1 つ目のフォームメールと同様に
1 行目・2 行目に書かれている admin@**.in*.smartave.ne.jp の部分を フ
ォームから送信されるメールの宛先となるメールアドレス(お客様のメール
アドレス)に変更して下さい。
3. 2 つ目のフォームメールの入力画面となる HTML ファイルの<FORM>タグ
の内側に以下のタグを記述して下さい。
<INPUT
TYPE="hidden"
NAME="_CONFIG_FILE"
VALUE="formcfg2.txt">
formcfg2.txt の部分はお客様が付けた設定ファイルのファイル名にして下
さい。
4. 管理者用アカウント(admin)を使用してサーバーに FTP 接続を行い、ファイ
ルを転送して下さい。 formcfg2.txt は/cgi-bin ディレクトリに転送し、 パ
ーミッションを 600(rw-------)に設定して下さい。 2 つ目のフォームメール
の入力画面となる HTML ファイルは/home ディレクトリ内の任意のディレ
クトリに転送して下さい。
5. ブラウザで 2 つ目のフォームメールの入力画面となる HTML ファイルを開
き、フォームメールが動作している事をご確認下さい。
13
以上で 2 つ目のフォームメールの設置は完了です。さらに多くのフォームメールを
ご使用になる場合も、上記の様に設定ファイルの名前を変えて頂ければご利用頂く
事が出来ます。
14
4
SSI
SSI は、最終更新日の表示などによく利用されます。 HTML 文書の中にコメントタグとし
て SSI のコマンドを書き込む事により、様々な処理を行う事が出来ます。 具体的な書式に
ついては、関連書籍やインターネット上の解説ページなどをご覧下さい。
● サーバーの仕様
SSI の設置に必要なサーバーの情報は、以下の表をご覧下さい。
.shtml
ファイルの拡張子
設置可能ディレクトリ
制限なし
.shtml 以外の拡張子で SSI を実行させる場合は、
「.htaccess」ファイルを使用して設定を
行って頂く必要がございます。 詳しくは、オンラインマニュアル - ブラウズ・コンテンツ
のページをご覧下さい。
● 「#exec」コマンド
#exec」コマンド
SSI のコマンドのうち、
「# exec *** = " ***** "」という形式で記述するコマンドはご利用
頂けません。 ご注意下さい。
15