Top > VineLinux3.2 > Moodle_153_164
AND OR

Moodleの移行(1.5.3→1.6.4)

Moodleを、稼働中の1.5.3+から三重大版(1.6.4+)へ移行した記録。 ここでは結果のみ書くが、実際の作業は試行錯誤の連続。 半日がかりで、大変だった…

前処理

まず、データベース関係。

  • Moodleで使用しているデータベースをバックアップしておく。
  • バックアップしたデータを、別データベースにリストアしておく。
    • インストールに失敗しても、すぐに元の状態に戻せるように。稼動テストをしておくのはいうまでもない。
    • 今回は、データベースのバージョンアップを先に行っていたので、その流れで同じ内容のデータベースを2つ作っておいた。

次に、必要なファイルのバックアップ。tarとかで適当に。

  • Moodle本体(1.5.3+)
  • Moodleで使用しているデータ
    • 課題やプロフィールなど、アップロードさえたファイル等
    • これがデカかった…数十MBは軽くあったので、いらないファイルはあらかじめ消しておくこと。

ファイルのダウンロード

三重大学版Moodleソース」からファイルをダウンロードする。

# wget https://portal.mie-u.ac.jp/src/moodle07.tar.bz2

ファイルの展開

ダウンロードしたファイルを展開して、インストール先に設置する。

# tar zxf moodle07.tar.bz2
# mv /hogehoge/moodle /hogehoge/moodle.bak
# mv moodle07 /hogehoge/moodle

このとき、Moodleのデータ用ディレクトリは、cache/の中身を削除しておく。

インストール開始

基本的に、奥村先生@三重大のご説明の通り。

言語やデータベースの設定、システムの確認などが表示されるので、適切に設定していく。ここで、データベースを、2つ作ったどちらか一方にしおけば、作業に失敗しても、すぐに元に戻せる。

config.phpを作る画面では、表示された内容をコピーして、moodleディレクトリ内にファイルを作成する。ただし、「$CFG->unicodedb」、「$CFG->unicodecleanfilename」の設定はここではしない。あとでする。

# vi /hogehoge/moodle/config.php

Moodleの設定

config.php作成画面の「続く」をクリックすると、Moodleの設定が始まる。今回は、各種アップグレード作業がある。次のような感じ。

  1. データベースのアップグレード(1.5.3用から1.6.4用にアップグレード)
  2. Moodleの設定
    • ココで注意!
    • 前の環境がEUCだったため、画面が文字化けしまくったり、英語でしか表示されなかったりした…表示がかなり変な状態になるが、あせらず内容をよく読む。または、想像する(苦笑)
  3. モジュールテーブルのアップグレード
    • ここでハマった… (..;
    • 標準のモジュールは問題なかったが、三重大学ご謹製のモジュール(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 (module, action, mtable, field) 
            VALUES ('mieattendance', 'view', 'mieattendance', 'name');
      
  4. その他のアップグレード

データベースのUTF-8化

ひと通りのアップグレードが終わると、システムが使えるようになるが、ここで重要な作業がある。データベースのUTF-8化である。Moodle 1.6には、UTF-8への移行ツールがついているので、管理メニューの一番上にあるリンクをクリックして、UTF-8化する。今回は問題なく終了できた!

ココまで終わって、はじめて日本語の言語パックが利用可能になる。つまり、日本語表示が可能となる。

PHPとMySQLの文字コードの問題

いろいろ設定し始めると、日本語を入力して設定した部分がおかしい。使用しているデータベース(MySQL 4.1.18)はバイナリバージョンをインストールしているので、文字コード変換関係があやしい。

そこで、.htaccessに次のように記述。Moodleのディレクトリに入れることで、対処できた。

<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化

下の2つの情報を参考に、MoodleのデータファイルのUTF-8化をした。ただし、やるのは、各コースのデータだけ。

今回は、どうもUTF-8化はされなかったみたい。

Moodleの設定(UTF-8化完了後)

次の2つの内容を、追加する。これで課題など日本語の名前のファイルをアップロードしても、日本語のファイル名のまま表示・処理してくれる。

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

バグフィックス&改良

  • 各コースの管理メニューで、ページが真っ白
    • /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

参考情報


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: Tue, 11 Mar 2014 02:20:22 HADT (3751d)