■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コマンドで修正市内限り,変更されない.