メインコンテンツまでスキップ

Moodleのアップグレードをするためのメモ

Moodleのversionアップグレードに関するメモ
Moodleに詳しくないのでただのメモです。
Moodle4.5からMoodle5.1にしてみました。

バージョン5からAIが強化されたらしいので興味からですね。

5.3がでてなかったので今回はlts版じゃないものインストール。
5.2はプラグイン対応が少ないのでやめました(テーマが・・・)

前に建てた仮想環境で構築したものをなんとなくアップグレードしただけです。

アップグレードの準備をする

Moodleをメンテナンスモードにする

Moodleのインストールディレクトリ(例: /var/www/moodle)で以下のコマンドを実行する。

sudo -u www-data php /var/www/moodle/admin/cli/maintenance.php --enable

moodleフォルダを移動しておく

moodleのデータファイルは別のフォルダなどにあるので
もとのフォルダを日付等で移動しておく
データの保存先はmoodleのconfig.phpに設定場所が書いてますが今回、触ることはないです。

mv moodle moodle+[日付などで]

ダウンロード

公式サイトを確認してください。
zip版である必要はないです。

wget https://新しいmoodle.zip

解凍する

unzip 新しいmoodle.zip 

config.phpを古いmoodleからコピー

わかりやすいように/var/www/はつけてます。

sudo cp /var/www/moodle+[日付などで]/config.php /var/www/moodle/config.php

config.phpはrootとかにしておいた方がいいです。
最後(アップグレード後)でいいです。

chown -R root:root /var/www/moodle/config.php

アップグレードする

max_input_vars=5000を指定したのはエラーがでたからです。
fpmでは10000でしたがコマンドでは適用されないので
iniで設定してるなら不要

sudo -u www-data php -d max_input_vars=5000 moodle/admin/cli/upgrade.php
sudo chown -R www-data:www-data moodle
sudo chmod -R 755 moodle

解凍時にファイルすくないなと思いましたが
Moodleって5.0あたりからルート変更されたんですね
nginxの場合はrootを以下に

root /var/www/moodle/public;

メンテナンスモードを解除する

sudo -u www-data php /var/www/moodle/admin/cli/maintenance.php --disable

動作テスト

管理者システムのセキュリティでなにかでてないかとかCronはちゃんと動作しているか?をとりあえずチェックする

ただのメモ(検証が必要)

root権限の方がセキュアかも?
ただ管理画面で色々制限がでるので要確認・検証
プラグインのブラウザからのインストール等でエラーがでたり

基本はroot所有にして、Webサーバーによる改ざんを防ぐ

sudo chown -R root:root /var/www/moodle

config.phpだけWebサーバーが読めるように変更

権限はrootだけでいいかもしれないですが一応
要確認、修正

sudo chown root:www-data /var/www/moodle/config.php
sudo chmod 640 /var/www/moodle/config.php