Moodle 1.9

Moodle 1.5 については Moodle 参照。 Moodle 1.6 については Moodle 1.6 参照。 Moodle 1.7 については Moodle 1.7 参照。 Moodle 1.8 については Moodle 1.8 参照。

三重大学版が http://portal.mie-u.ac.jp/src/ あるいはその中に書いてあるSubversionレポジトリからダウンロードできる。Subversionのほうが常に新しい。

PHP と,MySQL または PostgreSQL が必要。 以下では Linux + Apache + MySQL + PHP の環境でインストール。 CentOS 4.xやVine Linux 4.xで利用実績あり。

CentOS 4.xについては,httpd,php,mysql,php-mysql,gd,php-gd,php-mbstring がなければ yum install で入れておく。

OSのインストールの際にファイアウォールとSELinuxがデフォルトでオンになっていることがあるが,これはオフにしておかないと後で面倒なことになる。ファイアウォールは iptables デーモンを切ればよい。SELinux は setenforce 0 でとりあえず切れる。ずっと切るには /etc/selinux/config に SELINUX=disabled と書き込む。

Apache

DirectoryIndex に index.php が含まれることを確認。

Apache 2.x の場合,httpd.conf に必ず AcceptPathInfo on を入れる。

MySQL

MySQL 4.1.16以上が必要。

次のようにしてデータベースを作っておく(データベース名 moodle,ユーザ名 moodleuser,Webサーバのホスト名 hostname,パスワード himitsu の場合)。

mysql --default-character-set=utf8 -u root -p
create database moodle default character set utf8 collate utf8_unicode_ci; 
grant select,insert,update,delete,create,create temporary tables,drop,index,alter on moodle.* 
  to moodleuser@'hostname' identified by 'himitsu'; 
quit 

Apache と MySQL が同居する場合は 'hostname' は localhost でよい。 そうでない場合は 'oku' あるいは 'oku.edu.mie-u.ac.jp' のようにする(単に 'oku' とするのは /etc/hosts に oku が oku.edu.mie-u.ac.jp より先に書いてある場合)。

PHP

php.ini は基本的にデフォルトのままでいい。日本語関係の設定をするなら次のようにする:

default_charset = UTF-8
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = pass
mbstring.http_output = pass

Moodle.org のサイトには次のようにすると書かれている:

magic_quotes_gpc = 1      (推奨)
magic_quotes_runtime = 0  (必ず)
file_uploads = 1
session.auto_start = 0
session.bug_compat_warn = 0

しかしうちはデフォルトのまま magic_quotes_gpc = off で使っている。 このほうが安全。

ファイルのアップロードの最大サイズを php.ini で指定する:

upload_max_filesize = 100M
post_max_size = 100M

メモリ制限は多めに設定(少なくとも40M):

memory_limit = 128M

Moodle

Moodle をダウンロードして /var/www/html 以下に展開(以下では /var/www/html/moodle)。 これは当然ながら所有者は apache 以外にして,管理人以外には書き込み権限を与えない。

データ用ディレクトリを /var/www/html の外に設定。 以下では /var/www/moodledata とする。 ここは apache が読み書きできるようにする。 アップロードされたファイルはここに入る。

http://サーバ名/moodle/ をアクセスする(http://サーバ名/moodle/install.php にリダイレクトされる)。

質問に答えていけば設定ファイル config.php が作られるが,moodle ディレクトリに apache が書き込めないので,表示された config.php をコピーしてエディタにペーストし,moodle ディレクトリに保存する。 その際,

$CFG->unicodedb = true;
$CFG->unicodecleanfilename = true;

を追加する。なお,パスワードポリシーが1.9.7あたりから急に厳しくなったので,それがうざい場合は

$CFG->passwordpolicy = false;

と書いておく(このあたりのことは http://moodle.org/mod/forum/discuss.php?d=144857 参照)。 さらに,パスワードの保存方式が従来の単純なMD5からsaltを使う方式に変わったが,それに対応したくない場合

$CFG->passwordsaltmain = '...';

の行をコメントアウトする。

質問は「続く」でたくさんのページがあるが必ず最後まで答える(自動運転も可能)。 質問中でURLが http://.../moodle のようになるが最後に / を補わないこと。

途中で「「日本語(ja)」言語パックをダウンロードする」ボタンが現れるが,三重大学版はここは何もしない。 詳細設定の画面は例えば次のようにする:

lang: 日本語(ja)
country: 日本
allowcoursethemes: Yes
sessioncookiepath: /moodle/  ←Moodleをインストールしたパス
sitemailcharset: ISO-2022-JP

あとは http://サーバ名/moodle/ をアクセスするだけ。

動作確認したら cron を設定する。 まず http://サーバ名/moodle/admin/cron.php をブラウザで見てうまく働くことを確認。 よければ一般ユーザでいいから crontab -e で次のように設定。

*/5 * * * * wget -q -O /dev/null http://サーバ名/moodle/admin/cron.php

既存Moodleからの移行

念のためバックアップ:

mysqldump -u root -p moodle >moodle.sql

ソースを上書きし,管理者でMoodleにログインするとデータベースの更新が始まる。php.ini の max_execution_time に十分大きな値をセットしておかないと途中でタイムアウトする。

既存Moodleを残して別のMoodleに全データをインポートするには,上のようにして作ったバックアップを

mysql --default-character-set=utf8 -u root -p
# データベース newmoodle を作成
use newmoodle;
show tables;  # データベースが空であることを確認
source moodle.sql # これでデータがコピーされる

元のMoodleで設定していた sessioncookie と sessioncookiepath を変更する必要がある場合は, 次のようにすれば強制的に変えられる:

update mdl_config set value='新しいクッキー名' where name='sessioncookie';
update mdl_config set value='/新しいパス/' where name='sessioncookiepath';

Last-modified: 2011-02-07 (月) 17:44:23 (1994d)