|
情報実験< 新年度 RPS (レポート投稿システム) セットアップメモ > |
|
本ドキュメントは RPS (Report Posting System) のプログラムの概要
および, INEX 新年度準備内容を示したものである.1. 設定ファイル準備
1.1 ~inex/rps/etc/ 以下の準備
$ cd ~inex/rps/etc
- passwd を passwd-YYYY (YYYY:4桁西暦) へ名前変更.
注) 前年度のバックアップ. 本年度分は passwd, master に上書きされる.
$ cp passwd passwd-YYYY- master を master-YYYY (YYYY:4桁西暦) へ名前変更.
$ cp master master-YYYY- passwd の内容を全て消去.
$ echo "" > passwd- rps_environment.pl の修正.
$RPS_YEAR の行を新年度の西暦4桁に変更.
$RPS_YEAR = "YYYY"2. ディレクトリ準備
- ~inex/public_html/yYYYY/ に以下のディレクトリを作成.
$ umask 022 $ mkdir rps $ mkdir rps/html $ mkdir rps/upload※ uid, gid:inex, permission:755
- ~inex/public_html/yYYYY/rps/ に index.html ファイルを準備する.
(前年度からコピーして, YYYY を今年度に直せば OK)
- ~inex/public_html/rps を yYYYY/rps にリンクする.
$ cd ~inex/public_html $ rm rps $ ln -s yYYYY/rps rps- ~inex/rps/data/ 以下に次のディレクトリを作成.
$ mkdir ~inex/rps/data/yYYYY※YYYY:西暦4桁3. パスワードファイル準備
3.1 前年度のパスワードファイルの保存
- ~inex/rps/kanri/tex/ 以下にある .tex ファイルを年度毎のディレクトリに格納.
$ mkdir yYYYY $ mv *.tex yYYYY/3.2 参加者情報ファイルの作成
- 昨年度の参加者情報ファイルを整理する.
ファイルは ~inex/rps/kanri/autho/ 以下にあり, 慣例的に autho-yyyy.txt と名づけられている.
何度か作成する事になるため autho-yyyy-?.txt (yyyy:西暦4桁, ?:通し番号) の名前で複数残っている.
昨年度の分は autho-yyyy.txt として一つにまとめておく.
- 今年度の参加者情報ファイルを作成する.
一人分の情報は一行に列挙.
情報ファイルは次の項目を順に, カンマ "," で区切って列挙.
追加, 再設定で作成する場合は該当者のみを記入したファイルを作成する事.
学籍番号(教官,TA 等のスタッフはアカウント名), 名前(漢字), 所属, 情報実験機名, メールアドレス例22950111,地惑太郎,地球惑星科学(地球物理)2年,joho01,s2295111a@ec.hokudai.ac.jp keikei,倉本 圭,地球惑星科学専攻助教授,3.3 パスワードファイルの作成
- ~inex/rps/kanri/autoregist.pl に処理させる.
$ ~inex/rps/karni/autoregist.pl <情報ファイル>これにより以下の処理が行われる.
- ~inex/rps/etc/passwd にユーザの情報および crypt で暗号化されたパスワードが書き込まれる.
- ~inex/rps/kanri/tex/ 以下に初期パスワードの書かれた LaTeX ファイルが作成される.
- ~inex/rps/data/yYYYY/ 以下に各ユーザのディレクトリ作成.
- ~inex/public_html/yYYYY/rps/index.html にレポート投稿システムのトップページ作成.
- ~inex/public_html/yYYYY/rps/html/ 以下に各ユーザのディレクトリ作成.
3.4 T.A.コメント書き込み用パスワードの作成
- ~inex/rps/cmd/rps_setmaster.pl を使って作成する.
パスワードファイルは ~inex/rps/etc/master で, パスワードは全員で一つを共有する.
$ ~inex/rps/cmd/rps_setmaster.pl <password>これにより以下の処理が行われる.
- ~inex/rps/etc/master に上記のパスワードが crypt で暗号化されて書き込まれる.
3.5 「INEX レポート投稿システム登録完了通知」印刷
- ユーザ名と初期パスワードが書き込まれた「INEX レポート投稿システム登録完了通知」 を学生一人一人に印刷して配布する. ~inex/rps/kanri/tex/ 以下に学生1人につき1つの tex ファイルが置かれるので, これを platex コマンドと dvips コマンドで PS ファイルにした後, lpr で印刷する.
- ~inex/rps/kanri/tex/y*** 以下置いてある Makefile を用いると, そのディレクトリ 内の tex ファイルを自動的に PS に変換して lpr で印刷する. ただし, 普通 www サーバには platex や dvips がインストールされていないので, そういったソフトウェアがインストールされているホストへ移動して実行すること. 使い方は Makefile 自体を参照のこと.
4. メンテナンス
4.1 登録参加者名修正
- ~inex/rps/etc/passed ファイルの該当部分を修正.
- ~inex/public_html/yYYYY/rps/html/index.html 内の該当ユーザのユーザ名を変更.
- ~inex/public_html/yYYYY/rps/html/ 以下に各ユーザ名のディレクトリがあるので, 該当ユーザのディレクトリ名, およびそれ以下に置いてあるレポートの頭についている文字列 (ユーザ名と同じになっているはず) を新たなユーザ名に変更. [動作未確認なので, 作業の際はバックアップなどして置くと安全].
(既に多数のファイルが存在して, mv するだけで気が狂いそうになる場合には, daktu32 氏 の rename.rb で一括変換すると良いだろう.)
- ~inex/rps/data/yYYYY/ 以下にもユーザ名のディレクトリ, およびそのディレクトリ内に ユーザ名が頭についたファイル群があるので上記と同様に変更すること.
4.2 パスワードの再設定
- ~inex/rps/etc/passed ファイルの該当部分を消去.
- 3.2, 3.3 の作業を行い, 初期パスワードを再設定する.
※ 投稿済レポートには影響はない5. 質問掲示板準備
- ~inex/bbs/incl/bbsconf.pl 中の $WRITE_PERMIT_YEAR を該当年度に変更する.
$WRITE_PERMIT_YEAR = '2004'- データ格納ディレクトリの作成
$ mkdir ~inex/bbs/data-yYYYY- トップページ (~inex/public_html/yYYYY/bbs/index.html) の作成
前年度のトップページをコピーして年度の部分を書き換えれば OK.6. アップロードシステム準備
ファイルアップロードシステムは情報実験初年度 (2000 年度) の中途に 前坂氏 (初代 TA, レポート投稿システムの産みの親でもある) が作成した ものである. 基本的にレポート投稿システムはテキスト形式でしか投稿できず, HTML などで作成したドキュメントをアップロードするのがその目的であった.
しかし, ファイルアップロードシステムは不安定な段階で開発がストップし ( 実際には前坂氏が作った後, 誰も手を入れてない, ってか入れられない??), 現実的な利用が 難しかった. (アップロードできたり出来なかったりする. 少なくとも 2005 年度 TA の森川が画像のアップを数度試みた場合, エラーも何も表示 せず失敗してしまう.)
そのため, 2005 年度からはレポート投稿システムのトップページ ~inex/public_html/yYYYY/rps/index.html からファイルのアップロードシステムの 部分をコメントアウトしてある.
もしも, 2005 年度より後, ファイルアップロードシステムを利用する場合, ~inex/public_html/yYYYY/rps/index.html でコメントアウトされたファイルアップロードシステム の部分を再び表示するようにして欲しい. 基本的にそれだけで, 2004 年度以前に 利用していた環境には戻るはずである. (もちろん, 上記 1 〜 4 までの作業は 行っておくこと.
ただし, まともに利用するには, ファイルアップロードシステム自体を修正する必要が あるので注意. (…というか是非頑張って〜…)
7. cgi の概要
7.1 レポート投稿システム用パスワード関連
- rps_password.cgi
パスワード変更内容登録インターフェイス.
- rps_chpasswd.cgi
パスワード変更インターフェイス.
7.2 レポート投稿関連
- rps_post.cgi
新規レポート内容書き込みインターフェイス.
- rps_mkdata.cgi
レポート内容をファイルに書き出す.
rps_post.cgi からデータを受け取る.
- rps_modify.cgi
レポート内容更新書き込みインターフェイス.
- rps_chdata.cgi
更新されたレポート内容をファイルに書き出す.
rps_modify.cgi からデータを受け取る.
- rps_delete.cgi
レポート削除インターフェイス.
- rps_rmdata.cgi
レポートがかかれたファイルを消去する.
rps_delete.cgi からデータを受け取る.
- rps_comment.cgi
コメント書き込みインターフェイス.
- rps_cmtadd.cgi
コメント内容をファイルに書き出す.
rps_comment.cgi からデータを受け取る.
- rps_new.cgi
過去??日間の更新記事表示インターフェイス.
days=?? で指定.
- rps_upload.cgi
アップロードファイル転送インターフェイス.
- rps_uploaddel.cgi
アップロードファイル削除インターフェイス.
- rps_uploadcheck.cgi
アップロードファイル一覧表示インターフェイス.
7.3 質問掲示板関連
- bbs_write_form.cgi
新規書き込みインターフェイス.
- bbs_write.cgi
書き込み内容確認インターフェイス.
確認後, 内容をファイルに書き出す.
- bbs_follow_form.cgi
コメント書き込みインターフェイス.
- bbs_read.cgi
投稿された記事を表示する.
- bbs_number.cgi
番号順インデックスを表示する.
- bbs_tree.cgi
ツリー型インデックスを表示する.
8. ディレクトリ構造
~inex/rps/ 以下の主なディレクトリ構造.
- File-MMagic/
namazu 関連ファイル.
ファイルタイプ判別用.
- cmd/
管理コマンド置場.
- rps_newregist.pl
新規のメンバーを $RPS_HOME/passwd に登録し, 登録内容を Latex 形式で標準出力に出すツール.
- rps_mkmlist.pl
$RPS_HTML 以下にメンバー一覧表を作るツール.
rps_newregist.pl に組み込まれているので現在は不要.
- rps_setmaster.pl
T.A.コメント書き込み用パスワード $RPS_HOME/master に作成するツール.
- data/
レポート投稿システムのデータ置き場.
各年度毎に格納される.
- etc/
レポート投稿システム用パスワードファイル置き場.
- kanri/
- autoregist.pl
メンバー情報の一覧をいれるとその内容を $RPS_HOME/passwd に登録し,
tex/ 以下に各人のパスワードが書かれた LaTeX形式ファイルを作るツール.
一覧は以下の書式に従うこと.
○ 一行に書ける情報は一人分.
○ 情報はカンマで区切る.
内部的には渡された情報を整形して ../cmd/rps_newregist.pl に受け渡している.
詳しい使い方は 3.2 以降を参照すること.
- getinitpasswd.pl
autoregist.pl (rps_newregist.pl) で作成した LaTeXファイルから
パスワードだけを読みだし出力するツール.$ ./gateinitpasswd.pl hoge.tex- autho/
autoregist.pl に渡す参加者情報ファイル格納ディレクトリ.
年度毎に autho-YYYY.txt というファイル名が慣例的につけられている.
- tex/
autoregist.pl で作成される各人のパスワードが書かれた LaTeX 形式ファイルの格納ディレクトリ.
年度毎に yYYYY いうディレクトリを作成して過去のパスワードファイルが保管されている.
- kakasi/
namazu 関連ファイル.
日本語の分かち書き用.
- incl/
各 cgi, コマンド用 perl ライブラリ.
- man/
FileMMagic の man 置き場.
- namazu/
namazu 本体.
- namazu_index/
namazu の index 置き場.
- src/
namazu 関連のソース置き場.
9. トラブルシューティング
9.1 cgi 全般
- [Internal Server Error]
- cgi のパーミッションに問題あり.
6755 になっていない.
- cgi 自体が機能していない.
コマンドラインでの動作チェック.
- setuid による汚染された cgi 問題.
/var/log/apache/error.log をチェックし, 該当コードの汚染を無くす.
9.2 rps_mkdata.cgi
- [システムエラー: RPS_DATA_New]
~inex/rps/data/yYYYY/ 以下にユーザのディレクトリ作成が無い.
- [システムエラー: RPS_HTML_Data2html]
~inex/public_html/yYYYY/html/ 以下にユーザのディレクトリ作成が無い.
9.3 rps_upload.cgi
- [system error. upload1. ]
$RPS_UPLOAD_DIR のディレクトリ指定が間違っている.
9.4 ファイルのアップロードサービスについて
- まともに動かない例が多数報告されている. 根本的に修正するので ない限りは利用しない方が良いだろう.