TITLE:Moodleのバージョンアップ *Moodleのバージョンアップ [#d219daf6] **必要なソフトウェアの確認 [#eb9684be] 今回は、Moodle 1.9ベース(1.9.19)から 2.Xベース(Moodle 2.6.2)にバージョンアップした。 したがって、通常のクリーンインストールとは多少異なる。 必要となるソフトウェア(PHP、MySQLなど)のバージョンについては、 Moodleのドキュメントを参考にする。もちろん手順も。 -http://docs.moodle.org/26/en/Installing_Moodle なお、1.9ベースから2.Xベースへのアップグレードはできない。 一度、2.2ベースへアップグレードした後、目的のバージョンへアップグレードすることになる。 -http://docs.moodle.org/2x/ja/%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89FAQ 後から追加でインストールしたプラグインなどがあると、 うまくアップグレードできない場合もある。 結局は、ユーザ情報のみ移行することにした。既存のコースはすべて削除し、追加したプラグインは(使用するデータベース上のテーブルとも)削除した。プラグイン関係の操作は、必ず管理メニューから行うこと。 また、長い間ログインしていないユーザ、キャッシュやテンポラリディレクトリの内容、も削除しておく。 **Apacheの設定 [#g09bdf83] (すでに設定済みだが)/etc/httpd/conf/httpd.conf に設定を追加しておく。 だいたい、「DirectoryIndex」の行の下あたりで良いと思う。 … AcceptPathInfo on ←追加 … **PHPの設定 [#afa143a5] /etc/php.ini に、 メモリ制限やファイルのアップロードサイズを大きめで設定しておく。 とくに「memory_limit」は、うんと大きいほうが良いと思う。 アップグレードの途中で、PHPが使用するメモリが足りなくなり、 アップグレード作業が進まないことが何回もあった…Apacheのログはよく見ておこう…([[白井先生@鈴鹿工業高専の記事が参考になる:https://moodle.org/user/view.php?id=236280&course=14]]) memory_limit = 256M upload_max_filesize = 20M post_max_size = 20M 設定できたら、Apacheを再起動。 # service httpd restart **データベースのコピー [#f127c6a8] アップグレード対象のMoodleのデータベースをコピーしておく… …のではなくて(苦笑)、 1.9ベースのMoodleを残すことにしていたので、 アップグレード用に元のデータベースをコピーする。 今回は、phpMyAdminでお手軽にコピーを作った。 なお、Moodle用のユーザを作るのを忘れないこと(phpMyAdminの場合はユーザごとにデータベースへの権限を割り当てる)。 ついでに、Moodleのデータディレクトリもコピーしておくのを忘れないようにしよう。 **Moodle 2.2へのアップグレード [#u27dca4a] まず、アップグレード作業の起点となる、Moodle 2.2へアップグレードする。 今回は公式サイトのパッケージのみ使用する。 なお、2.2ベースは「2.2.11」が最終のリリースとなっている。 # wget "http://download.moodle.org/download.php/stable22/moodle-2.2.11.tgz" あとは、通常のMoodleのインストールと同じ。 ただし、使用するデータベースやデータディレクトリは、 コピーしたものを使用するように指定する。 アップグレード作業の途中で止まるようなら、URLを編集して、 「http://……/admin/install.php」(?)にアクセスし直すことで、 止まったところから再開させることができる場合がある。 **Moodle 2.2から2.6までの道 [#ja096bf2] ここまで問題なく済めば、あとはMoodle 2.6ベースへアップグレードすれば完了… …とはいかなかった。なぜか。&br; 実際の作業中には気がつかなかったが、上記のPHPに割り当てたメモリサイズの問題があったのだと思う。 しかたないので、2.2か2.3へ、2.3から2.5へ、2.5から2.6へと段階的にアップグレードしていった。非常に面倒だった(涙) しかたないので、2.2から2.3へ、2.3から2.5へ、2.5から2.6へと段階的にアップグレードしていった。非常に面倒だった(涙) あと、今回のサーバでもデータベース(MySQL)はレプリケーションを設定しているが、 途中でデータベースのログにエラーが残っていた。 それに対応するために、次の設定を「/etc/my.cnf」に追加した。 … binlog_format=row … **Moodle 2.6へのアップグレード [#q39c8453] 今回の目的のバージョンである、2.6.2へアップグレード。 作業はこれまでと同じ。 基本的には、作業はこれまでと同じ。 最後のほうで作成される config.php に対して、 日本語名のファイルに対応させるための設定として、 次の2行を追加しておく。 # vi /var/www/html/moodle/config.php ... $CFG->unicodedb = true; $CFG->unicodecleanfilename = true; ... **Moodleのインストール [#z3ce0940] 本家からではなく、 日本での利用向けに多くのカスタマイズがされている、 「[[三重大学版Moodle:http://portal.mie-u.ac.jp/src/]]」を使う。 Subversionリポジトリからでもいいが、 手軽に使うのならスナップショット版がおすすめ。 # wget http://portal.mie-u.ac.jp/src/moodle19.tar.bz2 また、日本語フォントの設定、地図データの入手も忘れずに。 Apacheのデフォルトディレクトリに、展開する。 # cd /var/www/html # tar --bzip2 -xf moodle19.tar.bz2 # mv moodle19 moodle # chown -R apache.apache moodle また、提出された課題のファイルなどを保管する、 データ用ディレクトリを作っておく。 # mkdir /var/www/moodledata # chown -R apache.apache /var/www/moodledata **プラグインなどの自動更新のエラーへの対策 [#b212428c] Moodleは2.4ベースから、プラグインの自動更新ができるようになっている(2.6では本体も自動更新が可能)。 ただ、その機能を使おうとすると、次のようなエラーが表示される場合がある。 利用可能なアップデートデータを取得できません - 不明なcURLエラーです。 **Moodleの設定 [#idf808ef] ブラウザで「http://'''hostname'''/moodle」にアクセスすると、 設定が開始される。 質問に答えていけばよい。 その場合には、Moodleのサイトの電子証明書が必要となる。 詳しくはMoodle Docの[[こちら:http://docs.moodle.org/26/en/Installing_plugins]]や[[こちら:http://docs.moodle.org/24/en/SSL_certificate_for_moodle.org]]に記載があるが、簡単にいうと、 「http://curl.haxx.se/ca/cacert.pem」からダウンロードした、 電子証明書のファイル「cacert.pem」を、 データディレクトリ内に「moodleorgca.crt」というファイル名で保存しておく。 最後のほうで、config.phpが作成されるが、 日本語名のファイルに対応させるため、 次の設定を手動で追加しておく。 # vi /var/www/html/moodle/config.php ... $CFG->unicodedb = true; $CFG->unicodecleanfilename = true; ... 今回は2.4へのアップグレードの段階で、上記ファイルを用意した。 日本語の言語パックはダウンロードしなくてもよいそうだが、 別にダウンロードしてもそんなに問題はないと思う。 **MyISAMからInnoDBへの変換 [#d29bbfea] MoodleでMySQLを利用する上で、 Moodle2.Xベースからは、データベース形式としてInnoDBを推奨しており、 アップグレードをしているときでも、そのようなメッセージが表示される。 そこで、2.6に移行したのを機に、 データベースのフォーマットも変換した。 Moodleにはスクリプトが用意されており、 次のURLから動作させることができる。 http://hogehoge/moodle/admin/tool/innodb/ 実際には1つだけテーブルが変換できなかったので、 そのテーブルだけ phpMyAdmin を利用した。 **cronの設定 [#me92c29f] 5分おきにMoodleにアクセスし統計情報を処理するスクリプトを作る。 5分おきにMoodleにアクセスし統計情報を処理するスクリプトを作る。Moodle Docにも[[Unixでのcronの設定:http://docs.moodle.org/2x/ja/Cron]]について記述がある。 # vi /etc/cron.hourly/moodle-chk.sh 内容は、例えば次のような感じ。 for a in 0 5 10 15 20 25 30 35 40 45 50 55; do wget -q -O /dev/null http://localhost/moodle/admin/cron.php sleep 300 done 最後に、ファイルのパーミッションを設定。 # chmod 755 /etc/cron.hourly/moodle-chk.sh **参考 [#qa79c288] -http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%201.9 -http://t-kita.net/rpm/moodle/ -http://docs.moodle.org/ja/Moodle%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB -http://docs.moodle.org/en/Installing_Moodle -http://oku.edu.mie-u.ac.jp/~okumura/linux/?Moodle%202.4 -http://kilin.clas.kitasato-u.ac.jp/howto/moodle2.html -http://docs.moodle.org/2x/ja/Moodle%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB -http://docs.moodle.org/26/en/Installing_Moodle |