■CGIスクリプトの利用方法■

学生用サーバcstu.nit.ac.jp上では、CGIスクリプトの実行が許可されてい ない。演習用にはtamura-lab.dyndns.org(学内だけからアクセス可能)の マシンを用意した。

このマシンは田村研内にある研究室用のWebサーバである.この演習用に来年 1月末まで使用できるが,演習終了時にアカウントを削除するので,使用できな くなる.必要なデータがあれば,各自自分のUSBメモリなどにダウンロードして おくこと.

  • マシン名: tamura-lab.dyndns.org
  • IPアドレス: 20.8.62.2
  • ユーザ名: c10xxxxx(自分の学籍番号)
  • パスワード: 授業中に指示
  • Web公開用ディレクトリ: ~/public_html
  • CGI用ディレクトリ: ~/public_html/cgi-bin
  • 参照URL: http://tamura-lab.dyndns.org/~c10xxxxx/
  • CGI用URL: http://tamura-lab.dyndns.org/~c10xxxxx/cgi-bin/ファイル名.cgi

CGI公開用ディレクトリに、CGIスクリプトを「count.cgi」のように拡 張子「.cgi」のついたファイル名で保存すれば、それを上記CGI用URLでアクセス できる.

■CGIスクリプトの呼び出し方■

CGIスクリプトを呼び出すには、単にCGI用のURLにアクセスすればよい。また、 HTML中にCGIスクリプトのURLへのリンクを張っておけば、ユーザにCGIをあまり 意識させることなく、そのCGIへ誘導することができる。

HTML中に張るCGIへのリンクは、通常の<a href>だけでなく、入力フォー ムの<form action="(CGIのURL)">もよく使われる。

■CGIスクリプトの作成■

作成手段とファイル属性の設定

CGIファイルをサーバマシンにログインして、viコマンドなどを使って cgi-binディレクトリの中に直接作成するか、windows上でメモ帳などを使って作 成してからffftpなどのファイル転送ソフトを利用して、サーバマシンのcgi-bin ディレクトリの中に転送しても良い。

サーバマシン上で作成する場合

サーバマシン上(tamura-lab.dyndns.org)で直接作成するには,teratermを使 用してサーバマシンにログインして作業する.

ログイン後,cdコマンドでCGIスクリプトを作成するディレクトリ(フォルダ) にカレントディレクトリを移動する.(windowsでいえば,フォルダを開くことに 相当)

% cd public_html
% cd cgi-bin

そのカレントディレクトリの中に,次のコマンドを使ってファイルを作成す る.

% vi 作成したいファイル名

viの使い方は次のを参考に

必要に応じて,データファイルなど別のファイルを作成しておく場合には, さらにviコマンドを使って作成しておけばよい.

Windows上で作成する場合

Windows上でメモ帳などを利用してファイルを作成し,それをサーバへ転送す ることもできる.

サーバへの転送は,Webページのデータを転送する時にも使用したffftpを使 用すればよい.ただし,転送先はWebページを転送しているcstuではなくて, tamura-lab.dyndns.orgである.

転送先のフォルダは,CGIプログラムを転送する場合には,public_htmlでは なくて,その中のcgi-binである点も注意すること.

また,windows上で作成した場合には改行コードの種類がWindowsとUnixでは異な るため、そのままではCGIプログラムとして実行できない.そこで,ファイル転 送後,サーバマシン上で改行コードを変更する作業が必要になる.その作業は, サーバマシンへログイン後,次のnkfコマンドを使って行う.(Unix上で直接ファイルを作成した場合には、当然だが、変換する必要はない)

% cd public_html
% cd cgi-bin
% nkf -Lu 転送したファイル名 > 新ファイル名

転送したファイル名と新ファイル名が同じだと、ファイルの内容が破壊され てしまうので注意すること。必ず別の名前にする。転送したファイル名をどうし ても使いたい場合にはmvコマンドで元に戻せばよい。

% mv 新ファイル名 元のファイル名

ファイルの属性変更

作成したり、転送したCGIファイルには、実行可能属性をつけなければ、プロ グラムとして実行することができない。

% chmod a+x CGIファイル名

また,そのCGIプログラム中で使用するデータファイルなどは,書き込み属性 をつけておかないと,CGIプログラムでデータを書き込むことができない.

% chmod a+w CGIで使用するデータファイル名

この属性変更は,ファイルを作成後の1回だけ行えばよい.その属性はもう一 度chmodコマンドで修正市内限り,変更されない.