相互評価をウェブ上でフィードバックできるシステムの構築

1.はじめに

 授業等においてプレゼンテーション等の相互評価を発表者にフィードバックすることは学習効果を高めるうえで有効であるといわれています。 しかし,評価用紙やExcel等の入力ファイルを発表者へフィードバックすることは容易ではありません。
 そこで,日本語ディストリビューションであるVineLinux6.0上に,ApacheとMySQLを稼働させ,ブラウザから評価の入力と閲覧ができるシステムを,PHP言語を利用して構築してみました。

以下の手順でシステム等を構築します。

なお,VineLinux6.0のインストールと,VineLinuxの操作方法については省略します。

2.準備

3.VineLinux6.0の設定

 サーバの設定について説明します。
なお,VineLinux6.0以外のディストリビューション(たとえば,CentOS)でも動作すると思いますが,  設定ファイルのファイル名や保存場所などが一部異なることがあります。

(1) パッケージインストール
・Apache2
・PHP5,PHP5-apache2,PHP5-mysql
・MySQL-server,MySQL-client
・nkf (ネットワーク用漢字コード変換フィルタ)

(2) Apache 2.2.21の設定

 ア /etc/apache2/conf/http.conf の設定 (水色の文字は変更または追加です)
# vi /etc/apache2/conf/http.conf
 
### Section 2: 'Main' server configuration
 
ServerAdmin root@pcroom.edu エラーメッセージに含めるメールアドレス
ServerName www2.pcroom.edu:80 自分自身を示すときに使うホスト名とポート
 
DocumentRoot "/var/www/html" デフォルトのドキュメントルート(メインコンテンツの保存場所。ここでは /var/www/html とする)
<Directory "/var/www/html">
  Options FollowSymLinks シンボリックリンクを使って別のディレクトリからアクセスが可能
  AllowOverride None .htaccessファイルを無視
  Order allow,deny allow(許可),deny(拒否)の順番に制御される。制御の内容は以下の行
  Allow from all どこからでもアクセスを許可する
</Directory>
 
DirectoryIndex index.html index.php index.html.var index.phpを追加。ディレクトリをリクエストしたときに調べるリスト

 イ Apacheの(再)起動
# etc/rc.d/init.d/apache2 (re)start

 ウ Apacheを自動起動に設定
# chkconfig apache2 on

 エ ファイアウォールの設定でTCP 80 番ポート(WWW)を開放する


(3) PHP5 5.3.7の設定

 ア /etc/php5/php.ini の設定 (水色の文字は変更または追加です)
# vi /etc/php5/php.ini
magic_quotes_gpc = Off Onの場合,'(シングルクオート),"(ダブルクオート),\(バックスラッシュ),Nullに対して自動的にバックスラッシュにエスケープされます。(Onとなっているサーバーもあります)
[Vine]
output_buffering = Off 出力バッファリングの指定を無効にする。
default_charset = UTF-8 HTTPヘッダcharacterをUTF-8に指定する。
mbstring.language = Japanese デフォルト言語を日本語に指定する。
mbstring.internal_encoding = UTF-8 内部エンコーディングをUTF-8に指定する。
mbstring.http_input = auto HTTP入力をautoにする。
mbstring.http_output = UTF-8 [変更]:HTTP出力をUTF-8に指定する。
mbstring.encoding_translation = On HTTP入力の変換を有効にする。
output_handler = mb_output_handler [追加]:出力変換を有効にする。
mbstring.detect_order = auto [追加]:デフォルトの文字エンコーディング検出順序をautoにする。
mbstring.substitu_character = none [追加]:無効な文字の代替文字を出力しない

 イ Apacheの再起動
# etc/rc.d/init.d/apache2 restart

*** Vine6.0でphpを導入すると起動に失敗する場合があります。 ***
# etc/rc.d/init.d/apache2 restart
Apache2 HTTP Serverを起動中:
[crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed  [ 失敗 ]

*** 対処方法 ***
# /sbin/update-alternatives --config apache2
2 プログラムがあり 'apache2' を提供します。
選択 コマンド
-----------------------------------------------
+ 1 /usr/sbin/apache2.worker
* 2 /usr/sbin/apache2.prefork

Enter を押して現在の選択 [+] を保持するか,選択番号を入力します: 2      preforkを番号で選択

# /etc/rc.d/init.d/apache2 start
Apache2 HTTP Serverを起動中: [ OK ]

 ウ PHPの動作確認のためのソース作成 (下記のhyouka.zipの中にファイルがあります)
# vi /var/www/html/index.php
 <?php
 phpinfo();
 ?>

 エ サーバ上のウェブブラウザで確認(アドレスに,http://localhost/index.php と入力し,下記のように表示されればPHP言語が利用できます。)



※ なお,VineLinux6.0以外のディストリビュージョンでは,「mbstring」がインストールされていない場合があります。
インストールされていない場合は,必ずインストールして下さい。


(4) MySQL 5.1.56の設定

 ア MySQLのconfファイルの選択
/usr/share/mysql/の中に以下の3つのファイルがあり,該当する1つのファイルを/etc/へファイル名「my.cnf」としてコピーを行う。
my-large.cnf
my-medium.cnf
my-small.cnf
512M 以下のシステムメモリーの場合
128M 以下のシステムメモリの場合
64M 以下のシステムメモリの場合

 イ /etc/my.cnf の設定 (文字コード等の設定) (水色の文字は変更または追加です)
# vi /etc/my.cnf

[client]
default-character-set=utf8 [追加]:デフォルト文字コードをUTF-8に指定。
[mysqld]
key_buffer_size = 16M 値が大きいと検索が速くなる
max_allowed_packet = 1M 大きなデータを保存するときに調整
table_open_cache = 64 値を大きいと負荷が減る
sort_buffer_size = 512K 値が大きいとソートの実行が速くなる
read_buffer_size = 256K インデックスのない問い合わせ速度を調整
default-character-set=utf8 [追加]:サーバー内部の文字コードをUTF-8に指定
skip-character-set-client-handshak [追加]:クライアントの文字情報を指定
[mysqldump]
default-character-set=utf8 [追加]:サーバー内部の文字コードをUTF-8に指定

 ウ MySQLの(再)起動
/etc/rc.d/init.d/mysql (re)start

 エ MySQLを自動起動に設定
# chkconfig mysql on

 オ MySQLのセキュリティ対策
初期状態ではrootにパスワードなしでログインできるため,rootにパスワードを設定すします。
$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.56-log VineLinux MySQL RPMM
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

rootにパスワードなしで初期ログイン
mysql> set password for root@localhost=password('12345678');
Query OK, 0 rows affected (0.09 sec)

rootにパスワードを設定
(ここではパスワードを12345678  とした)
mysql> exit
Bye

一度,MySQL monitorを終了
$ mysql -u root -p12345678

rootにパスワード12345678  でログイン
mysql> delete from mysql.user where password="";
Query OK, 4 rows affected (0.03 sec)

空パスワードのユーザーを削除
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *D2EFA3ADBC4CAF4303D571D783F9AE6BA9D3A926 |
+------+-----------+-------------------------------------------+
1 row in set (0.00 sec)

ユーザの確認
1. 空パスワードのユーザが無いこと
2. rootにパスワードが設定されていること
mysql> show variables like '%character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.03 sec)

MySQL内の文字コードの確認
mysql> exit
Bye
MySQL monitorを終了

4.PHP言語による相互評価システムの流れ

MySQL monitorで評価を入力するデーターベースとテーブルをブラウザ上で管理できるよう,以下の設定をします。

(1) ソースファイルのダウンロードと設置方法
 ア ソースファイルのダウンロード
 hyouka.zip  [hyoukaの中身:hyouka.php,kanri.php,kanri2.php,index.php,name-sample.csv(サンプル名簿です)]
 ※ソースコードは,UTF-8形式で保存してあります。

 hyouka-2.zip  [hyouka-2の中身は,上とおなじです]
 ※hyouka.zipとの違いは,評価閲覧のページで評価者の学籍番号と名前が表示されないことです。


 イ ファイルの解凍と設置方法
 hyouka.zipを解凍すると,フォルダ「hyouka」が作成されます。このフォルダごと「/var/www/html/」に配置して,フォルダのアクセス権を「777」と変更します。


 ウ 管理画面へのアクセス方法(VineLinux6.0上で実施しています。)
 http://localhost/hyouka/kanri.php
 ※ http://www2.pcroom.edu/hyouka/kanri.php (クライアントからアクセスする場合)


 エ 相互評価へのアクセス方法 [管理サイトで一度データーベースを作成してからになります]
 http://www2.pcroom.edu/hyouka/hyouka.php?tb=(テーブル名)&tl=(タイトル名)


(2) データーベース・テーブルの管理の流れ(管理者用)

【管理1】ログイン
【データベース管理 ログイン】

MySQLで設定したUSER「root」のパスワードを入力します。
一般ユーザの「USER」と「PASSWORD」はここで設定します。(自由に設定)
なお,この三つの情報は,隠しファイル「.rootuser」に保管されています。

今後,評価の入力・閲覧は,一般ユーザで実行されます。
運用上,入力や閲覧をする人は特に意識する必要はありません。

ボタン「ログイン」=>【管理2】へ

【管理2】データベース名の管理
【データベースの管理】

新規にデータベースを作成する場合
「新規作成」を選択し,ボタン「選択D」 => 【管理3】へ

既存のデータベースを選択する場合
「新規作成」以外のデータベース名を選択し,ボタン「選択D」=> 【管理4】へ

既存のデーターベースを削除する場合
該当のデーターベースを選択し,ボタン「削除D」=>【管理2】へ
※ データベース内にあるテーブルはすべて削除されます

ボタン「ログアウト」=> 【管理1】へ

補足:同じ名簿ファイルを利用する場合は,DataBaseを選択してTableを新規作成するとよい。

【管理3】新規データベース名と名簿の管理
【データーベースの新規作成と名簿の取り込み】

データベース名を入力します。(半角英数字/重複名は不可)

名簿の取り込みをする場合
ボタン「参照」

補足:『名簿ファイル』のフォーマットについて
(添付してあるファイル「name-sample.csv」を参照して下さい)
◆1列目は,学籍番号[最大5桁の半角数字]
◆2列目は,名前[最大全角7文字]
データの区切りは,カンマ[,]区切りです。
(Excel等で名簿を作成し,CSV形式で保存するとよい)
文字コードは「Shift_JIS」,改行コードは「CR+LF」です。
ファイル名は,半角英数字です。

データベースの作成と名簿の取り込みを行う場合
ボタン「作成D」=> 【管理4】へ

データベースの作成を中止する場合
ボタン「戻るD」=> 【管理2】へ

【管理4】テーブルの管理
【テーブルの管理】

新規作成する場合
「新規作成」を選択し,ボタン「選択T」=> 【管理5】へ

項目名を変更する場合
該当するテーブル名を選択し,ボタン「選択T」=> 【管理7】へ

テーブルを削除する場合
該当するテーブル名を選択し,ボタン「削除T」=> 【管理4】へ

データの表示・変更・追加・削除等を行う場合
該当するテーブル名を選択し,ボタン「表示T」=> 【管理8】へ

データベースの再選択する場合
ボタン「戻るT」=> 【管理2】へ

※ テーブル名「meibo」は,ボタン「選択T」「削除T」をクリックしても何も起こりません。

【管理5】新規テーブル名の入力
【新規テーブル名の入力】

テーブル名は,半角英数字で入力して下さい。
「このDataBaseに登録されているテーブル名」に表示されている名は入力しないで下さい。

ボタン「作成T」=> 【管理6】へ

ボタン「戻るT」=> 【管理4】へ

【管理6】新規項目名の管理
【項目名の新規登録】

最大で5項目の登録ができます。(最大項目数は変更できます)
最大項目数の変更方法
kanri.phpの3行目
define("COL_MAX",5);
の数字「5」を目的の値に変更してください。
大きな数字にすると,評価入力の画面が横長になってしまいます。

項目名の入力の注意事項(下の【管理7】の画面を参考にして下さい)
項目名があまり長いと表示する部分が縦長になってしまうため簡潔にします。
項目名に空欄がありますと,それ以降は無効となります。
項目名の変更はできます。追加・削除はできません。

各項目に対して,最大5段階の選択肢となります。
初期設定は,5段階としてあります。

テーブルの作成と項目名の登録の場合
ボタン「作成F」=> 【管理4】へ

テーブルと項目名を破棄する場合
ボタン「戻るT」=> 【管理4】へ

【管理7】項目名の管理
【項目名の変更】

項目名を変更する場合
ボタン「変更F」=>【管理4】へ
(テーブルの項目名と段階評価数のみの変更となります。データは削除されません)

項目名は変更しない場合
ボタン「戻るT」=>【管理4】へ
(テーブルの項目名と段階評価数は変更されません)


【管理8】データの管理
【テーブル内にある実データの管理】

ボタン「logout」=>管理1

データの変更・削除・追加ができます。
データの削除はこの画面でしかできません。
idの番号は変更できません。
最終頁の最終行には新規データの入力ができます。

画面上部に,ページ切り替えボタンが表示されます。
  [<<]:1頁目へ  [<]:前頁へ  [>]:次ページへ  [>>]:最終ページへ

『Search System or Export』・『Import』
ボタン「検索」=>
項目名を選択し,検索値を入力してデータの絞り込みを行うことができます。
[例] 左記の画面
検索項目「clno」を選択
・2100〜2199のみを表示したい場合,検索値に「21%」と入力して下さい。
・検索値が空欄の場合は,全て表示されます。

ボタン「Export」=>
検索値に入力された値をCSV形式でデータをダウンロードすることができます。
Excel(文字コード:Shift_JIS,改行コード:CR+LF)で内容を見ることができます。

ボタン「Import」 =>
「Export」によって,ダウンロードされた形式に準拠します。
id以外の全データを「,」区切りのCSV形式となります。
文字コードは「Shift_JIS」,改行コードは「CRLF」です。
(内部では,「UFT-8」に変換して取り込みを行っています)

(3) 相互評価の入力と閲覧の流れ(生徒用)

【評価ログイン】
【評価ログイン】

ウェブブラウザで以下のURLを指定します。
http://(IPアドレスまたはドメイン名)/hyouka/hyouka.php?tb=[テーブル名]&tl=[タイトル名]
[テーブル名]:作成したテーブル名
[タイトル名]:ログイン時に表示される。省略も可。

学籍番号= > 名簿ファイルに登録した番号を入力

ボタン「入力」 => 評価入力

ボタン「ExportI」 => 入力したデータをCSV形式のファイルとしてダウンロードする。
  ファイル名「Input-(学籍番号).csv」

ボタン「閲覧」 => 評価閲覧

ボタン「ExportE」 => 閲覧したデータをCSV形式のファイルとしてダウンロードする。
  ファイル名「Output-(学籍番号).csv」

【評価入力】
【評価入力】

データの新規入力(上段)
発表者欄に,発表者の学籍番号を入力します。
 ※ 学籍番号を入力しても名前はすぐには表示されません。
各評価欄の選択肢から該当する番号を選択します。
コメント欄に,感想を入力します。
 ※ 全角50文字以内で入力してください。
入力後,右端のボタン「追加」をクリックします。
 ※ ボタン「追加」をクリックすると,下段にデータが表示されます。

データの変更(下段)
データを変更後,変更した行の右端にあるボタン「更新」をクリックします。

注意事項
ブラウザのボタン「戻る」は利用しないで下さい。(2重登録)
ボタン「削除」はありません。

【評価閲覧】
【評価閲覧】

入力された評価を閲覧ができます。

最下行には,各項目の平均点が表示されています。

評価者の項目で学籍番号と名前を非表示したい場合は,hyouka-2.zipをダウンロードしてご利用ください。

5.実践事例

授業展開
  1. ブラウザでこのシステム(相互評価)にアクセスします。
     
  2. このシステム(相互評価)について説明をします。
     
  3. ログイン方法で学籍番号を入力後,ボタン「入力」をクリックします。
    (学籍番号は,名簿ファイルで登録した番号)
     
  4. 入力する前に以下の説明をします。
  5. 必要があれば,評価入力後のデータの訂正をします。
    (新規入力欄の下に入力したデータが表示されるので,そこで訂正)
     
  6. 全員の評価を入力後,ログイン画面で学籍番号を入力して,ボタン「閲覧」をクリックします。
    入力されたデータは,各個人の主観的判断であることを踏まえて読むように指示をします。
     
  7. 評価を閲覧後
    全体の感想を作成します。
    作品の修正 (時間配分の関係で省略しました)
長所
 ・ 短時間で入力ができます。
 ・ 入力結果を教師側が何一つ操作をしなくても瞬時に閲覧することができます。
 ・ 入力そして閲覧ともに実名が表示されるので,評価はとても真剣に取り組まれます。

短所
 ・ 学籍番号を入力をしてもすぐには名前が表示されない。
 ・ コメント欄の内容のチェックが随時できない。
 ・ サーバが故障等で利用できないと評価の入力ができなくなってしまう。

6.最後に

 今回,相互評価をフィードバックするシステムを構築することで,生徒がパソコンを通して評価を入力し,すぐに閲覧できるようになりました。 また,データのバックアップ等をCSV形式で保管したり,表計算ソフトやテキストエディター等で加工・編集することもでき相互評価を2次加工することが可能となります。 さらに,パソコンで入力・閲覧をすることで,紙資源消費の削減が期待できます。

参考文献

図解でわかる Linuxサーバ構築・設定のすべて 一戸英男 著 日本実業出版社
実践マスター PHP・MySQL PHP4/PHP5対応 小島まさご 著 ソーテック社