TITLE:Moodleの移行(1.5.3→1.6.4)
*Moodleの移行(1.5.3→1.6.4) [#m609ffef]
Moodleを、稼働中の1.5.3+から三重大版(1.6.4+)へ移行した記録。
ここでは結果のみ書くが、実際の作業は試行錯誤の連続。
半日がかりで、大変だった…
**前処理 [#l38286c4]
まず、データベース関係。
-Moodleで使用しているデータベースをバックアップしておく。
-バックアップしたデータを、別データベースにリストアしておく。
--インストールに失敗しても、すぐに元の状態に戻せるように。稼動テストをしておくのはいうまでもない。
--今回は、データベースのバージョンアップを先に行っていたので、その流れで同じ内容のデータベースを2つ作っておいた。
次に、必要なファイルのバックアップ。tarとかで適当に。
-Moodle本体(1.5.3+)
-Moodleで使用しているデータ
--課題やプロフィールなど、アップロードさえたファイル等
--これがデカかった…数十MBは軽くあったので、いらないファイルはあらかじめ消しておくこと。
**ファイルのダウンロード [#z755f030]
「[[三重大学版Moodleソース:https://portal.mie-u.ac.jp/src/]]」からファイルをダウンロードする。
# wget https://portal.mie-u.ac.jp/src/moodle07.tar.bz2
**ファイルの展開 [#g9d42155]
ダウンロードしたファイルを展開して、インストール先に設置する。
# tar zxf moodle07.tar.bz2
# mv /hogehoge/moodle /hogehoge/moodle.bak
# mv moodle07 /hogehoge/moodle
このとき、Moodleのデータ用ディレクトリは、cache/の中身を削除しておく。
**インストール開始 [#o10550aa]
基本的に、奥村先生@三重大の[[ご説明:http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.6]]の通り。
http://サーバ名/moodle.install.php にアクセスすると、インストールが始まる。
言語やデータベースの設定、システムの確認などが表示されるので、適切に設定していく。ここで、データベースを、2つ作ったどちらか一方にしおけば、作業に失敗しても、すぐに元に戻せる。
config.phpを作る画面では、表示された内容をコピーして、moodleディレクトリ内にファイルを作成する。ただし、「$CFG->unicodedb」、「$CFG->unicodecleanfilename」の設定はここではしない。あとでする。
# vi /hogehoge/moodle/config.php
**Moodleの設定 [#c33889d3]
config.php作成画面の「続く」をクリックすると、Moodleの設定が始まる。今回は、各種アップグレード作業がある。次のような感じ。
+データベースのアップグレード(1.5.3用から1.6.4用にアップグレード)
+Moodleの設定
--&color(Red){ココで注意!};
--前の環境がEUCだったため、画面が文字化けしまくったり、英語でしか表示されなかったりした…表示がかなり変な状態になるが、あせらず内容をよく読む。または、想像する(苦笑)
+モジュールテーブルのアップグレード
--&color(Blue){ここでハマった…}; (..;
--標準のモジュールは問題なかったが、三重大学ご謹製のモジュール(mieattendance、miechoice)のところで問題が発生
--次の2つのファイルの下の方にある、INSERT文でエラーが発生して、作業が進まなくなる
mod/mieattendance/db/mysql.sql
mod/miechoice/db/mysql.sql
--とりあえず、該当箇所をすべて次のように修正して、なんとか作業をすすめた(ここが一番しんどかった)
#pre(novervatim){{
修正前:INSERT INTO prefix_log_display VALUES ('mieattendance', 'view', 'mieattendance', 'name');
修正後:INSERT INTO prefix_log_display &color(Red){(module, action, mtable, field) };
VALUES ('mieattendance', 'view', 'mieattendance', 'name');
}}
+その他のアップグレード
**データベースのUTF-8化 [#tdaff351]
ひと通りのアップグレードが終わると、システムが使えるようになるが、ここで重要な作業がある。''データベースのUTF-8化である。''Moodle 1.6には、UTF-8への移行ツールがついているので、管理メニューの一番上にあるリンクをクリックして、UTF-8化する。今回は問題なく終了できた!
ココまで終わって、はじめて日本語の言語パックが利用可能になる。つまり、日本語表示が可能となる。
**PHPとMySQLの文字コードの問題 [#jf10b1a7]
いろいろ設定し始めると、日本語を入力して設定した部分がおかしい。使用しているデータベース(MySQL 4.1.18)はバイナリバージョンをインストールしているので、文字コード変換関係があやしい。
そこで、.htaccessに次のように記述。Moodleのディレクトリに入れることで、対処できた。
#pre{{
<IfModule mod_php5.c>
php_value default_charset UTF-8
php_value mbstring.internal_encoding UTF-8
php_value mbstring.script_encoding UTF-8
php_value mbstring.http_output UTF-8
</IfModule>
}}
ほかにもおかしいのがあったが、面倒なので、phpMyAdminを使って、
直接データベースの内容を書き換えた。
**その他のファイルのUTF-8化 [#v8ebb324]
下の2つの情報を参考に、MoodleのデータファイルのUTF-8化をした。ただし、やるのは、各コースのデータだけ。
-http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.6#x7954ed8
-http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%2FUTF-8
今回は、どうもUTF-8化はされなかったみたい。
**Moodleの設定(UTF-8化完了後) [#sfded242]
次の2つの内容を、追加する。これで課題など日本語の名前のファイルをアップロードしても、日本語のファイル名のまま表示・処理してくれる。
$CFG->unicodedb = true;
$CFG->unicodecleanfilename = true;
**バグフィックス&改良 [#yd48c1ee]
-各コースの管理メニューで、ページが真っ白
--/home/moodle/course/student.phpの不具合だったので、該当箇所を修正
-学生の一覧でユーザ名を表示させたいので、改良
--評価:/home/moodle/grade/lib.php
--投票:/home/moodle/mod/choice/lib.php、/home/moodle/mod/choice/report.php
-プロフィールの編集画面で、「姓→名」の順になるように改良
--/home/moodle/user/edit.html
**参考情報 [#f9675afb]
-[[三重大学版Moodleソース:https://portal.mie-u.ac.jp/src/]]
-[[Moodle 1.6:http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.6]](奥村先生@三重大のWiki)
-[[Moodle/UTF-8:http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%2FUTF-8]](奥村先生@三重大のWiki)
-[[Moodle(本家):http://moodle.org/]]
-[[Moodle Docs(日本語):http://docs.moodle.org/ja]](1.6へのアップグレードやUTF-8への移行についての説明がある)
|