E-問答 Moodle プロファイル情報変更

Moodleのプロファイル情報の変更を行ったので記載する。
(「フロントページ・カテゴリ・コースの初期設定について」の記載は後日とする。)

Moodleのデフォルトプロファイル項目

Moodleは、海外の大学の講義用に開発されている側面があるので、
氏名(実名)・国・県の登録が必須となっていて、
日本のネットユーザには少々抵抗があるように思う。

プロファイルの変更内容

下記のように登録時の表記を変更する。

  • ユーザ名→システムID (必須のまま)
  • 名   →ユーザ名  (必須のまま)
  • 姓   →本名    (任意に変更)
  • 都道府県→(廃止)  (任意・登録時は非表示に変更)
  • 国   →(廃止)  (任意・登録時は非表示に変更)

また、プロファイル閲覧時に氏名が表示されてたのをユーザ名の表示にする。

表示項目の変更(moodle.phpの編集)

Moodleは言語データを変数としてランゲージパックの中で設定している。
データディレクトリの中の/lang/moodle.phpを編集すればよい。
(変数名と変数の整合性が取れなくなる項目が生じるが、影響はない。)

  • 「ユーザ名」を「システムID」に一括置換(32箇所該当した)
  • $string['firstname']」,$string['missingfirstname']の中の

「名」を「ユーザ名」に(手作業で)置換。
 (※一括置換すると別箇所も置換されてしまう)

  • 「姓」を「本名」に一括置換。
  • $string['fullnamedisplay']を{$a->firstname}'に変更。
  • $string['fullnameuser']をユーザ名に変更

必須・任意の変更

該当箇所のvalidateを設定しているaddRuleを無効化する。
(執筆時点の最新版のmoodle 2.0.3+の行数を記載)

  • user/editlib.php
    • 104行

// $mform->addRule('lastname', $strrequired, 'required', null, 'client');

    • 196行

// $mform->addRule('city', $strrequired, 'required', null, 'client');

    • 204行

// $mform->addRule('country', $strrequired, 'required', null, 'client');

  • login/signip_form.php
    • 77行

// $mform->addRule('lastname', get_string('missinglastname'), 'required', null, 'server');

    • 81行

// $mform->addRule('city', get_string('missingcity'), 'required', null, 'server');

    • 90行

// $mform->addRule('country', get_string('missingcountry'), 'required', null, 'server');

非表示項目の変更

該当箇所の要素を設定しているsetElementをhiddenとする。

  • login/signup_form.php
    • 79行

// $mform->addElement('text', 'city', get_string('city'), 'maxlength="120" size="20"');
$mform->addElement('hidden', 'city', get_string('city'), 'maxlength="120" size="20"');

    • 89行

// $mform->addElement('select', 'country', get_string('country'), $country);
$mform->addElement('hidden', 'country', get_string('country'), $country);

変更内容の反映

該当ファイルをバックアップ取得後に上書きし、
所有権が問題ないことを確認する。
サイト管理>開発>すべてのキャッシュを削除するより、
キャッシュを削除した上で、変更内容を確認する。

E-問答 Moodleシステム管理者設定

Moodleインストール後の初期設定について、重要度の高い項目を記載する。

Cronの実行設定

cron.phpを一定間隔で実行させる必要があるので、5分置きに実行させるとして、設定する。
cron.phpからはユーザへのメールの通知やバックアップの実行などが行われる。
お名前.comのコントロールパネルから定期的に実行するコマンドを登録できるので、下記のように登録する。

曜日 コマンド
0-50%10 * * * * wget -q -O /dev/null http://www.emondou.jp/moodle/admin/cron.php
5-55%10 * * * * wget -q -O /dev/null http://(開発環境)/moodle/admin/cron.php

本番環境と試験環境で、5分置きでcronが実行される設定となっている。
cronが24時間以上実行されていないと、ユーザ管理>通知に表示されるので、上記で確認できる。

登録の設定

コースを公開するには、ハブに登録する必要があるので、
サイト管理>登録から「MOOCHへの登録」を行う。
審査なしに自動で許可される。
(ローカル環境で試験した際はWEBからアクセスできない為、許可されなかった。)

バックアップの設定

誤操作や悪意のあるユーザ対策として、バックアップを取得しておきたい。
なお、システム障害によるデータ消失の可能性は低いと考えているので、
(お名前.comでは、RAID構成かつ日次でバックアップされている)
Moodleのバックアップ機能を利用して、コース情報を同一サーバ内に自動アーカイブする事とする。
>サイト管理>コース>バックアップ>自動バックアップセットアップの画面から、
毎週水曜日の4:00に10世代分のバックアップを取得する。
(もっともユーザの影響が少ないと思われる平日の早朝の時間を選んだ。)
自動バックアップはすぐに実行を確認できないので、課題管理台帳に実行確認するように記載する。

メールの設定

サイト管理>サーバ>Eメールから
SMTPホストに「mailgw.vps.gmoserver.jp」を登録する。
(お名前.comのVPS用サーバ用のメールサーバとして、ヘルプに記載されている。)
「サイトページの参加者等でメッセージを送る」等として、メールの送信確認を行う。

次回はフロントページ・カテゴリ・コースの初期設定について、記載する。

E-問答 サーバ アプリインストール設定

前回のサーバOS周り設定に引き続いて、アプリ(Moodle)周りのインストール設定を記載する。

Moodleの環境確認

Moodle公式サイトで確認したところ、
最新版を動かすには、PHP 5.2.8とMySQL 5.0.25が必要だった。
借りているVPSサーバでは、PHP5.1.6までしか入っていないため、PHPをバージョンアップする必要がある。
ソフトウェアのバージョンアップを行うと、お名前.comのサポートが一部外れてしまい、
コントロールパネルからのアプリケーションや自動アップデートが利用できなくなってしまう。
管理の手間およびリスクは高まるが、仕方ないのでPHPをバージョンアップする事とした。

PHPのバージョンアップ

お名前.comの「セキュリティの自動アップデートを行わない」設定にすることで自動的にyumのインストールが行われた。
yum update php」コマンドでphpを最新にしようとしたが、
CentOS5.3のリポジトリでは、5.1.6よりあげることができないため、上述のコマンドのみではだめだった。
ネットを調べてみた結果、お名前.comのVPSでlive commerceを構築で、
解決する手順が記載されていたので、手順に従って実行。
yumサードパーティ(remi)のリポジトリを利用してアップデートするのだが、
priorityの設定や互換性を保つ為に既存パッケージをアンインストールしたりと、
かなり煩雑であり、上記サイトにたどり着くまでに紆余曲折してしまった。)

phpMyAdminのインストール

お名前.comではphpMyAdminがプリインストールされているが、PHPをバージョンアップした為に
利用できなくなってしまったので、phpMyAdminをインストールしなおす。
この手順も上述のお名前.comのVPSでlive commerceを構築に記載されていたので、
手順に従って実行。
(公式サイトからphpMyAdminの最新版をダウンロードし、乱数生成の種と認証方式の2箇所を変更して、アップロードした。)
開発環境側のhttpdocsの下にインストールした。
本番環境と開発環境ではドメインが異なるが、同一サーバなので、1つのphpMyAdminのインストールで済む。

Moodle用のDB・ユーザの準備

Moodleが利用するDB・ユーザをphpMyAdminから設定する。
空のDBを本番用・開発用に作成し、それぞれのDBにのみ全権限を持つユーザを作成した。
作成したアカウントのIDとパスをパスワード管理台帳に記載した。

Moodleのダウンロードとアップロード

Moodle公式サイトから最新版をダウンロード。
ローカルで解凍し、FTPソフトを用いて、本番環境と開発環境のそれぞれにアップロード。
本番環境はURLを短縮する為にhttpdocsの直下にファイルを置いた。(moodleディレクトリを作らない)
開発環境は別のURLとの区別を付ける為にhttpdocsの下にmoodle_developディレクトリを作り、その下にファイルを置いた。
いずれのディレクトリも、apacheがファイルを作成できるように、
「chown-R apache:apache」コマンドで所持者を変更する。

Moodleデータディレクトリの準備

MoodleデータディレクトリはWEBからアクセスできない場所に置く事が求められているので、
本番環境、開発環境共にhttpdocsの上と同じ階層にmoodledataディレクトリを作成する。
ディレクトリ内にapacheがファイルを作成できるように、chownで所持者をapacheに変更する。

Moodleのセットアップ(ブラウザから)

ブラウザからMoodleディレクトリに入ると、install.phpが起動して、設定を確認される。
言語に日本語を選択し、前述のデータディレクトリを指定し、データベース設定を指定する。
問題なければ、そのまま進むことができるが、「intl拡張モジュール」のインストールを求められたので、
これのインストールを行う。

php intl拡張モジュールのインストール

前述のサードパーティのレポジトリ(remi)を用いることで、
yum install --enablerepo=remi php-intl」等として、インストールできた。
Apacheを再起動。

Moodleの再セットアップ(ブラウザから)

Moodleのセットアップを再実行して、警告が消えたことを確認する。
画面に従って進んでいくと、Moodleが複数のモジュールが正常に動く事を確認してくれる。
エラーが発生しなければ、最高管理者アカウント作成画面になる。
最高管理者アカウントとは別に自分用の教師用アカウントを作成するので、
最高管理者アカウントには管理用にのみ使う旨記載して、残りは空白とする。
最高管理者アカウントを生成したので、パスワードとアカウントをパスワード管理台帳に記録。
サイト名・サイト名略称・サイト説明を求められるので、記載。
Eメールによる登録は本番環境では可、開発環境では不可とした。
これらの項目は後から変更できる。

次回は、Moodleのシステム設定について記載する。

E-問答 サーバ基本設定

オープンソースの学習マネジメントシステム(LMS)のmoodleを利用して、
IT資格試験取得支援サイト「E-問答」の準備をしている。

公開できる範囲でその作業メモを記載する。

「プロジェクト管理」「WEBサービス作成」「Moodle」の
セットアップ方法等が参考になればと考えています。

今回は、プロジェクト下準備からサーバの基本的な(アプリケーションに絡まない)設定までを記載する。

プロジェクト下準備

1.課題管理台帳を用意して、後回しにした作業を忘れないようにする。
(セットアップ作業中だけでなく、書籍やWEBでの学習時や、移動中等のメモも、随時書く。)
2.パスワード管理台帳を用意して、IDとパスワードを記録しておく。
プログラムの開発は行わないので、SVN等でのバージョン管理は行わないこととする。

サーバ準備

下記の要件から、お名前.comのVPS(Virtual Private Server)を利用。
1.公開環境は常時オンラインにしていたい(≒自宅サーバは不可)
2.開発環境を自由に設定したい。(⇒共有サーバは不可)
3.不要な費用をかけたくない。(⇒専用サーバは不可)
(※ポリシー(可能な限りフリーでオープンソフトを利用する)に従えば、自宅サーバの利用となるが、
レンタル料が月2000円程度な事と、管理コストの大幅削減となるので、商用サービスを利用した。)  

アカウント情報をパスワード管理台帳に記載。
さくらインターネットが割安なサービスを提供している事を知ったので、
お名前.comの契約更新前に移転を検討する事を課題管理台帳に記載。

ドメイン準備

サービス名「emondou.jp」をドメインとして、お名前.comで取得。
日本語の「E-問答.jp」にしようか、迷ったが無難にローマ字とした。
サーバ移転時には、ドメイン管理も移転するので、詳細の検討を課題管理台帳に記載。

サブドメイン準備

本番環境と開発環境で、ドメインを分けたいので、サブドメインを取得。
お名前.comのコントロールパネルで作成したところ、
FQDN名でフォルダを用意する等の設定を、システムが自動で行ってくれた。

OS選定

Linuxの各種OSを選択できるが、特に要件はないので、
基本設定のCentOS5.3を利用する。
(基本設定だとコントロールパネルからの各種操作が利用できる)

OSアップデートポリシー決定

セキュリティアップデートはオート(お名前.comが自動代行)とする。
「自動でセキュリティ管理してもらうことで、把握していない更新により障害が発生するリスク」と
「手動でセキュリティ管理をするコストとリスク」を比較した結果、オートとした。
障害が許されないサービスだったり、OS管理スキルを高めたいのなら、手動が良いと思う。
潜在リスクとして、課題管理台帳に記載。

メールアドレス準備

管理用のメールアドレスとして、admin@e-mondou.jpを作成。
お名前.comのコントロールパネルから作成できるので簡単。
普段利用しているthunderbirdで受信できるように設定。
を利用する事で数分で作れた。

アクセス解析準備

お名前.comのアクセス解析が利用可能なので、
コントロールパネルから利用するようにアカウントを設定。
アカウントをパスワード管理台帳に記載。
詳細は後日検討予定なので、課題管理台帳に記載。

SSH接続準備

リモートからSSHで接続する為に、SSHのポートの22を開く。
お名前.comのコントロールパネルから設定変更できるので簡単。
windowsから利用できるターミナルソフトの「teraterm」を自PCにインストールする。
作業ログを残す設定にする。

FTP接続準備

お名前.comが用意してくれているファイルマネージャを利用しても良いが、
使い慣れているので、FFFTPをインストールする。

データベース設定

mySQLを利用する設定にする。

次回は、アプリケーション周りのOS設定変更を記載する。

ITベンダ資格試験取得の感想

半強制でITベンダ資格試験取得の為の勉強をやっているので、
その所感を書いてみる。


半強制とはいえ、好きで入った会社の方針なので、さほど不満はない。
資格試験は、新分野の技術取得のとっかかりに良いと思う。
勉強する事は楽しいし、試験に臨むのも嫌いではない。


ただ、費用負担の高さがいただけない。
例えば、DB(データベース)の資格のOracleGoldを取得する場合はおよそ465,000円もかかる。
(内訳は下の「☆資格取得費用概算☆」に記載。)


IT資格を取得する事のメリットは「資格取得の過程での技術習得」「資格所持による技術証明」
の2点だと考えている。
どちらも自動車免許に例えて考えると分かり易いと思う。


「資格取得の過程での技術取得」について、
取得直後の技術者は、「ペーパー技術者(ドライバー)状態」である。
すなわち、実務として任せるのには危なっかしい。
マニュアルや熟練者の力を借りながら実機に触れ続ける事で、
使いこなせるようになる。

「資格所持による技術証明」について、
「客先業務は公道なので、客先業務にOracleを使うのなら資格を所持しているべき」
と(私の周りでは)考えられている。
一方、「社内業務や趣味は私道なので、
これらにOracleを使うのには資格を所持している必要はない」
とも考えられている。
Oracleは客先業務(重要案件)向けのシステムなので、趣味目的で使う人は少ないが、
  LinuxJava等は趣味で使う人も多い。)

続きを読む

SP3(WindowsXP ServicePack3)復帰メモ

8月頭にデスクトップPCのWindowsUpdateを何気なく許可したら、
Windowsのロゴ画面が表示される前に再起動され、立ち上がらなくなってしまった。


調べてみたところ、AMD製のCPUを使っていて、OSが上手く認識していない場合に、
ServicePack3を適用してしまったのが原因らしい。
少し試行錯誤しても直らなかったので、研究室から借りているノートパソコンで
代用していたけども、そのままにしておくのは癪だったので、リカバリに再挑戦。


グーグル先生のおかげで、トラブルの復帰方法候補は色々と見つかった。
http://www.kotaete-net.net/Default.aspx?pgid=14&qid=40163348822
http://orbit.cocolog-nifty.com/supportdiary/2008/04/windows_xp_sp3__92ca.html
けれども、この方法は以前試して、失敗している。
batch spuninst.txtを実行すると、「アクセスが拒否されました。」
が延々と表示さてしまい、何の処理も行われず、再起動しても変わらなかった。


さて、どうしようかと考えて、更に調べてみたところ、
http://blog.livedoor.jp/ltakeshi/archives/cat_50028602.html
のような対処法が見つかった。
spuninst.txtに書かれているOSのあるドライブと、
実際のドライブが異なっているのが原因だったらしい。


リンク先にあるように、knoppixからspuninst.txtにアクセスして、
h:/をc:/に,H:/をC:/に置換したspuninst2.txtを作成するも、ドライブに書き込めない。
またまた対処法を調べて、試行錯誤してみたところ、
ドライブのアイコンから書き込み可能モードに変更することが出来た。
後は、spuninst2.txtを作成して、回復コンソールからこれを実行して、なんとか復活。
久々に汚いデスクトップを見たときは、小躍りしたくなるほど嬉しかった。

さまざまな関心

若干畑違いの学会で、発表を聞いている。
関心ってそれぞれなんだなぁと思った。


例えば、
目的:日→独の翻訳エンジンの精度を高めたい
手法:日→英→独の翻訳結果を参考にして、言葉を選ぶ


目的:クロスワードパズルを解きたい
手法:問題をグーグル検索して、候補を探し出す


目的自体が、一度も考えたことがないもので、面白い。