このページでは、Moodleのアップグレード方法を詳しく説明します。プロセスの概要については、アップグレードの概要をご覧ください。
| 警告:
コードディレクトリ:Moodleファイルのディレクトリ構造とセキュリティモデルは、5.1で変更されました。 1. ウェブからアクセス可能なすべてのファイルを格納するために、新しい「public」フォルダが導入されました。セキュリティを高めるため、設定ファイルやその他の機密ファイルは、このフォルダの外に保存されるようになりました。 2. アップグレードプロセスの一環として、このセキュリティ上の変更に対応するようにウェブサーバを再設定する必要があります。下記のコードディレクトリの再構成セクションをご覧ください。 Composer:Moodleのルートディレクトリに |
要件の確認
アップグレードする前に、サイト管理 > サーバ > 動作環境で、サーバが5.3のすべての要件を満たしていることを確認してください。
サーバおよびクライアントソフトウェアの要件については、Moodle 5.3リリースノートをご覧ください。
注:Moodle 5.3にアップグレードできるのは、Moodle 4.4以降からのみです。それより前のバージョンからアップグレードする場合は、中間ステップとして、まず4.4以降にアップグレードする必要があります。
アップグレードの前に
期待どおりに動作することを確認するため、まず本番サイトのコピーでアップグレードをテストすることをお勧めします。Moodleの移行をご覧ください。
サイトにアップグレードキーを設定することを検討してください。この機能はしばらく前から利用可能です。現在では、セキュリティを高めるために使用が推奨されています。
重要なデータのバックアップ
アップグレードの前には、次の3つの領域をバックアップする必要があります:
- Moodleソフトウェア(例:server/www/moodle内のすべて)
- Moodleにアップロードされたファイル(例:server/moodledata)
- Moodleデータベース(例:PostgresまたはMySQLのデータベースダンプ)
詳しくは、サイトのバックアップをご覧ください。
プラグインの更新の確認
自動更新の適用を有効にしている場合は、アップグレード中にインストール済みのプラグインを自動的に更新できます。サイト管理 > プラグイン概要ツールで、(そのためのボタンを使用して)利用可能な更新を必ず確認してください。
プラグインを手動で更新する場合は、ここでMoodleプラグインディレクトリを確認し、サイトにインストールされているプラグイン(テーマを含む)に5.3用のバージョンがあるかどうかを確認してください。ある場合は、プラグインパッケージをダウンロードし、Moodleのコード内の適切な場所にコピーする準備をしてください(プラグインのインストールをご覧ください)。
これにより、プラグインのアップグレードはMoodleのアップグレードプロセスの一部として実行されます。
古いプラグインが原因でアップグレードが失敗する場合は、通常、Moodle内からアンインストールする代わりにプラグインのコードを削除することで、プラグインに関連するデータをそのまま残すことができます。
サイトをメンテナンスモードにする
サイトのアップグレードを始める前に、サイトをメンテナンスモードにして、管理者以外のユーザがログインできないようにしてください。その後、現在実行中のcronプロセスが完了するのを待ってから先に進んでください。
コードディレクトリの再構成
Moodleファイルのディレクトリ構造とセキュリティモデルは、5.1から変更されました。
バージョン5.0以前から5.2にアップグレードする場合は、ウェブサーバの設定を更新する必要があります。詳しくは、[./https://docs.moodle.org/501/en/Upgrading#Code_directories_restructure 5.1のコードディレクトリの再構成に関するドキュメント]をご確認ください。
5.1から5.2にアップグレードする場合は、上記のウェブサーバの設定の更新がすでに完了しているため、5.2へのアップグレードにあたってディレクトリの再構成に関する追加の作業は必要ありません。
ルーティング
Moodle 4.5以降、Moodleにはルータが含まれており、このリリースではその使用範囲が広がっています。
Apache
Apacheの設定にアクセスできる場合は、次のようにFallbackResourceディレクティブを使用できます:
<Directory "/path/to/your/site">
FallbackResource /r.php
</Directory>
Apacheの設定にはアクセスできないものの、設定でOverrideファイル内でのFallbackResourceの指定が許可されている場合は、Moodleのpublicフォルダに、次の内容の.htaccessファイルを作成できます:
FallbackResource /r.php
ホスティング先でFallbackResourceディレクティブの使用が禁止されている場合でも、mod_rewriteを使用できる可能性があります。下記のOpenLiteSpeedに関するドキュメントをご覧ください。
FallbackResourceディレクティブについて詳しくは、Apacheのドキュメントをご覧ください。
nginx
nginxサーバは、ディレクトリごとの設定をサポートしていません。すべての設定は中央の設定で指定する必要があります。
必要な設定は、nginx全体の設定と、php-fpmの統合方法によって異なります。
try_files $uri $uri/ /r.php$is_args$args;
OpenLiteSpeed(cPanel)
この設定はApacheとも互換性があります。
次の内容を、Moodleの/publicディレクトリの.htaccessファイルに記述してください。
RewriteEngine On
# If we have a request which:
# - is not a file;
# - but is a directory;
# - and the directory contains an index.php;
# then redirect to the index.php in that directory.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_FILENAME}/index.php -f
RewriteRule ^(.*)$ $1/index.php [L]
# Rewrite / to /index.php
RewriteRule ^$ ./index.php [L]
# Anything else should be redirected to the Moodle Router.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ r.php [L,QSA]
新しいMoodleソフトウェアのインストール
最新リリースは、Moodleダウンロードからダウンロードできます。
標準インストールパッケージ
- 古いMoodleソフトウェアのプログラムファイルを別の場所に移動します。新しいファイルを古いファイルの上にコピーしないでください。
- アップグレードファイルを展開し、新しいMoodleソフトウェアのプログラムファイルがすべて、サーバ上で古いファイルがあった場所に配置されるようにします。必要に応じて、MoodleはアップグレードでSQLとmoodledataを調整します。
- 古いconfig.phpファイルを、新しいMoodleディレクトリ(publicサブディレクトリではありません)にコピーして戻します。
前述のとおり、サイトにプラグインをインストールしていた場合は、ここで新しいコードツリー(Moodleのディレクトリ構造)にプラグインを追加してください。新しいバージョンのMoodle用の正しいバージョンを入手していることを確認することが重要です。新しいバージョンのMoodleのコードを上書きしないように、また、プラグインのフォルダを正しいディレクトリ(現在のインストールでプラグインが置かれているのと同じディレクトリ)に配置するように、特に注意してください。
moodledataフォルダは、Moodleのコードフォルダとは別の場所にあるはずなので、moodledataフォルダに対しては何もする必要はないはずです。Moodle 3.0では、moodledataフォルダがウェブからアクセス可能なフォルダにある場合、警告が表示されます。また、moodledataは決してMoodleのコードフォルダ内に置かないでください。インストールを新しいサーバやサーバ上の新しい場所に移動する場合は、移行に関するドキュメントに従う必要があります。
Linux
mv moodle moodle.backup tar xvzf moodle-latest-5.3.tgz
次に、config.php、カスタムプラグイン、および作成した場合は.htaccessファイルをコピーします(まず、カスタムプラグインが新しいMoodle用の正しいバージョンであることを確認してください):
cp moodle.backup/config.php moodle cp -pr moodle.backup/theme/mytheme moodle/public/theme/mytheme cp -pr moodle.backup/mod/mymod moodle/public/mod/mymod
moodle/config.php(および残りのソースコード)を、wwwサーバが読み取れるようにすることを忘れないでください。セキュリティを最大限に高めるには、ファイルをサーバから書き込み可能にしないでください。これは、公開インターネットに開かれた「本番」サーバでは特に重要です。 そのための方法の1つは、ウェブユーザが引き続きアクセスできるようにしたまま、所有者をrootユーザに変更することです。例:
chown -R root:root moodle (Linux debian - or even create a user especially for moodle. Don't use the web server user, e.g. www-data) chmod -R 755 moodle
cronを使用する場合は、cron.phpが実行可能で、正しいphpコマンドを使用していることを確認してください:
chmod 740 admin/cli/cron.php (some configurations need chmod 750 or chmod 755) copy the first line from cron.php (if it looks like '#!/usr/local/bin/php' or '#!/usr/local/bin/php5.3', no need to copy '<?php')
(必要な場合)。ただし、単純なアップグレードであれば、cronについて何も変更する必要はないはずです。
Gitの使用
Gitを使用してMoodleを更新またはアップグレードできます。詳しくは、管理者向けGitをご覧ください。
重要
インストールしたサードパーティプラグインは、新しい/publicフォルダより上の元の場所に残ったままです。引き続き動作させるには、これらのプラグインを新しい/publicフォルダ構造内の対応するパスに移動する必要があります。
コマンドラインによるアップグレード
Linuxサーバでは、ウェブブラウザを使用する代わりに、コマンドラインからアップグレードを実行できます。これは推奨される方法であり、特に大規模なサイトでは、より確実に動作する可能性があります。
Composerの依存関係の更新
Moodle 5.2以降、MoodleはComposerを使用して一部のサードパーティライブラリをインストールできます。Moodleにはこれらのライブラリの大部分のコピーが引き続き含まれているため、Moodle 5.3ではComposerは任意です。ただし、OAuth 2サーバなど、Moodle 5.3の新機能は例外です。これらの機能を使用するには、composer installコマンドを実行し、キャッシュを削除する必要があります。Moodle 6.0からは、Composerが必須になります。
Composerを使用している場合、またはMoodleのルートディレクトリにすでにvendor/ディレクトリがある場合は、Moodleのソースコードを更新するたびにComposerの依存関係を更新してください。
Moodleのルートディレクトリから、次のコマンドを実行します:
composer install --no-dev --classmap-authoritative
これにより、次のことが保証されます:
- Composerで管理されている依存関係が、新しいMoodleリリースで必要なバージョンに更新されます。
vendor/およびlib/配下のサードパーティライブラリのバージョンの同期が保たれます。- Composerオートローダが再生成され、最適化されます。
- 以前のMoodleバージョンの古い依存関係情報が、予期しない動作を引き起こすことがなくなります。
このコマンドは、アップグレードのたびに、Gitから最新の変更を取得した後、または新しいMoodleリリースパッケージをインストールした後、Moodleのアップグレードを実行する前に実行してください。
Composerを使用しておらず、Moodleのルートディレクトリにvendor/ディレクトリがない場合は、Moodle 5.3で導入されたOAuth 2サーバ機能を使用するのでない限り、この手順は省略できます。動作環境チェックの「Composer installed data not found」は警告であり、アップグレードは続行できます。詳しくは、Composerのvendorディレクトリが見つからないをご覧ください。
Entry "core\composer" cannot be resolved: Parameter $vendordir of __construct() has no value defined or guessableというエラーが表示された場合は、すべてのキャッシュを削除(php admin/cli/purge_caches.php)してから、アップグレードを実行してください。このエラーは、コードを置き換えた後、アップグレードを実行する前にサイトを開いた場合に表示されることがあります。
アップグレードの完了
最後の手順は、Moodle内でアップグレードプロセスを開始することです。
先にサイトをメンテナンスモードにした場合は、ここで解除してください!
これを行うには、サイト管理 > 通知に移動するだけです。
Moodleは自動的に新しいバージョンを検出し、必要なSQLデータベースまたはファイルシステムのアップグレードをすべて実行します。Moodle自身で実行できないことがある場合は(ごくまれです)、何をする必要があるかを示すメッセージが表示されます。
すべてがうまくいけば(エラーメッセージが表示されなければ)、新しいバージョンのMoodleの使用を開始して、新機能をお楽しみいただけます!
注:複数のサーバを運用している場合や、一部の機能が動作しない場合(ファイルピッカが読み込まれないなど)は、アップグレードの完了後に、(サイト管理 > 開発 > すべてのキャッシュを削除するから)手動ですべてのキャッシュを削除してください。
Fatal error: Maximum execution time of 30 seconds exceeded...
サーバで英語以外の言語をメイン言語として使用している場合、アップグレードしようとすると「Fatal error: Maximum execution time of 30 seconds exceeded」が発生することがあります。php.iniでmax_execution_time = 160に増やすと、スクリプトが言語の更新を処理するのに十分な時間を確保できます。または、アップグレードの前にデフォルト言語を英語に切り替え、アップグレードが成功した後で元の言語に戻すこともできます。https://moodle.org/mod/forum/discuss.php?d=119598 のフォーラムディスカッションをご覧ください。
Moodle 5.3で影響を受ける可能性のある問題
upgrade_notesラベルの付いたイシューおよびui_changeラベルの付いたイシューの一覧もご覧ください。
アップグレード時のデバッグメッセージ
アップグレード中に、「Deleting question which is no longer linked to a context...」というデバッグメッセージが表示されることがあります。対応は必要ありません。この既知のデバッグに関する問題には、MDL-88393で対処しています。
活動ブロックの削除
活動ブロックは削除されました。このブロックを使用しているコースページやダッシュボードページでは、アップグレード後にブロックがなくなります。アップグレードの前に使用状況を確認し、影響を受けるサイトに事前に連絡してください。
サブセクションの削除

サブセクションの説明フィールドは削除されました。既存のサブセクションの説明は、アップグレード中に自動的には移行されません。管理者が移行タスクを手動で実行するまで、それらはコースで非表示のままになります。
説明をテキストおよびメディア領域活動に移行するか、代わりに説明を削除するには、サイト管理 > プラグイン > 活動モジュール > サブセクションに移動します。そのページから該当するタスクを実行してください。
サブセクションの編集フォームには、「名称」および「利用制限」の設定のみが残ります。
MoodleNetの非推奨化
MoodleNetとの統合は5.2で非推奨となり、今後のリリースで削除されます。クライアントがMoodleNetの共有機能やプロファイルリンクを積極的に使用している場合は、移行の計画を始めてください。
MimeTexの削除
MimeTeXライブラリは削除されました。クライアントサイトで数式のレンダリングにMimeTeXとTeXフィルタを使用している場合は、MathJax(推奨される代替手段であり、Moodleですでにサポートされています)に切り替えてください。
マーケットプレイスとの統合
Moodle 5.2では、マーケットプレイスとの統合に向けた最初の基盤が導入されています。対応は必要ありません。今後のリリースで、プラグインや統合機能の見つけ方が変わることを示すものです。
Moodle 5.3の新しいケイパビリティ
- mod/quiz:customisequestionnumbers
Moodle 4.3、4.4、4.5、5.0および5.1のアップグレードに関する注記
アップグレード元のバージョンに応じて、次のドキュメントの「Possible issues that may affect you」セクションをご覧ください:
プロセスについて質問がありますか?
moodle.orgのInstalling and upgrading helpフォーラムに投稿してください。
- Moodle.orgの「Helpful Moodler」であるRickが、自身のVPS上でMoodle 5.0をMoodle 5.1にアップグレードした方法を紹介する動画です。複数の言語の字幕が付いています。
VPS上でのMoodle 5.0からMoodle 5.1へのアップグレード - Rickが、上記の動画「Upgrading from Moodle 5.0 to Moodle 5.1 on my VPS」で説明されている方法を使用して、3つのMoodleサイトを10分以内にアップグレードする様子を紹介しています。
3つのMoodleサイトを10分以内に更新する