TITLE:Moodleの移行(1.5.3 -> 1.6.4) *Moodleの移行(1.5.3 -> 1.6.4) [#m609ffef] 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 --とりあえず、該当箇所をすべて次のように修正して、なんとか作業をすすめた(ここが一番しんどかった) 修正前: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'); #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への移行についての説明がある) |