フリーソフトによる実習室のコンピュータ環境の構築
9.Apache(Webサーバー)のインストール、設定
(3)CGIによるアンケートの回答、集計
Webサーバーに、CGIプログラムをおき、ブラウザでアクセスすることによりアンケートの回答、集計ができるようにする。CGI(Common Gateway Interface)は、Webページで動的な画面を表示するプログラムのひとつである。
CGIを作成する言語として、手軽で簡単な言語といわれているPerlを用いることにする。
A.Perlのインストール
RedHatLinux8.0のインストールディスクを用いて、Perlを追加インストールする。
B.アンケート用CGIプログラムのダウンロードおよび設置
1.CGIプログラムのダウンロード及び解凍
2.CGIを設置するフォルダの作成及びアクセス権限の変更
(1)WebサーバーのCGI用のフォルダ(例./var/www/cgi-bin/)内にアンケート用のフォルダを作成する(名前は、任意。以下の説明では/ankとする)。
例.
# mkdir /var/www/cgi-bin/ank
(2)アクセス権限を-rwxrwxrwxとする。
例.
# chmod 777 /var/www/cgi-bin/ank
3.CGIプログラムの転送及びアクセス権限の変更
(1)解凍したファイルを3.で作成したフォルダ(例./var/www/cgi-bin/ank)に転送する。
転送するファイル
anketo.pl
anketo_view.pl
anketo_line.pl
anketo_calc.pl
anketo_rate.pl
(2)転送したファイルのアクセス権限を-rwxr-xr-x(755)変更する。
4.グラフ表示用画像のフォルダの作成及びアクセス権限の変更
(1)WebサーバーのHTML用のフォルダ(例./var/www/html/)内にグラフ用の画像をおくフォルダを作成する(名前は、/imagesとする)。
例.
# mkdir /var/www/html/images
(2)アクセス権限を-rwxr-xr-xとする。
例.
# chmod 755 /var/www/html/images
5.グラフ表示用画像の転送及びアクセス権限の変更
(1)解凍したファイルを4.で作成したフォルダ(例./var/www/html/images)に転送する。
(2)転送したファイルのアクセス権限を-rw-r--r--(644)に変更する
C.cgi-lib.plのダウンロードおよび設置
上記のアンケートシステムを動作させるためには、cgi-lib.plが必要なのでダウンロードする。
1.cgi-lib.plのダウンロード
The cgi-lib.pl Home Page(http://cgi-lib.berkeley.edu/)のCurrent versions of cgi-lib available:より、Version *.**(*.**は、バージョン)を右クリックし、メニューから[対象をファイルに保存]を選択し、適当な場所に保存する。
2.ダウンロードしたファイルは、”cgi.lib.pl.txt”というファイル名なので、名前を”cgi.lib.pl”に変更し、所有者はroot、アクセス権は-rwxr--r--にする。
3.アンケート用フォルダ(/var/www/cgi-bin/ank/)に転送する。
D.アンケートの問題の作成
入力フィールドには、textbox(テキストボックス)、textarea(テキストエリア)、listbox(リストボックス)、radio(ラジオボタン)の4種類が利用できる。
1.質問・回答の設定ファイルを作成する。ファイル名は、”anketo.tsv”。
2.項目の区切りは、タブにする。項目の順は、入力フォームの種類、質問、回答(listbox,radioの場合)。
3.質問ごとに、改行する。
4.Bで作成したアンケート用フォルダに転送する。ファイルのアクセス権限を-rw-r--r--にする。
5.anketo.tsvの文字コードがEUCでない場合(Windowsのエディタで作成したとき)は、文字コードを変換する。
例.Windowsのエディタで作成したファイル名をAnketo.txtとする。
# nkf -ed anketo.txt > anketo.tsv
E.アンケートへのアクセス
ブラウザで、CGIにアクセスをする。結果については、下記のCGIにアクセスすることで確認できるが、anketo.logファイルにも保存されているので、転送して利用ができる。
- アンケートページへのアクセス例
http://ドメイン名(orサーバー名orIPアドレス)/cgi-bin/ank/anketo.pl
- 結果の一覧表示へのアクセス例
http://ドメイン名(orサーバー名orIPアドレス)/cgi-bin/ank/anketo_view.pl
- 結果のグラフ表示へのアクセス例
http://ドメイン名(orサーバー名orIPアドレス)/cgi-bin/ank/anketo_line.pl
- 結果の割合表示へのアクセス例
http://ドメイン名(orサーバー名orIPアドレス)/cgi-bin/ank/anketo_rate.pl
- 結果の数値表示へのアクセス例
http://ドメイン名(orサーバー名orIPアドレス)/cgi-bin/ank/anketo_calc.pl