MoodleのVer3.5.2からVer3.5.6へアップデートできない

MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿
返信数: 9

お世話になっております。

MoodleのVer3.5.2からVer3.5.6へのアップデートしましたが完了しませんでした。

アップデートが終わり、データーベースを更新し、ログアウトをしました。

そこから、ログインしようID/PWを入力すると、


「データベースへの書き込み中にエラーが発生しました。」


とエラーメッセージがでて、Moodleにログインできなくなってしまいました。

管理者権限のアカウント・学生アカウントどちらでログインしようとしても、

上記のエラーメッセージがでて、ログインできなくなってしまいました。


どのようにしたら、MoodleのVer3.5.2からVer3.5.6へアップデートでき、

ログインできるようになるでしょうか?


下記に、「今現在のサーバー環境」と「Moodle環境のバージョンアップ歴」を記載させて頂きます。

ご教授頂けますと幸いです。 

どうぞよろしくお願い致します。



■■今現在のサーバー環境■■

<Moodle(バージョン3.5.2)>

< PHP環境 (バージョン7.1.23-1) >

< MariaDB環境 (バージョン5.5.60-1) >

mariadb-libs-5.5.60-1.el7_5.x86_64

mariadb-5.5.60-1.el7_5.x86_64

mariadb-server-5.5.60-1.el7_5.x86_64 


■■Moodle環境のバージョンアップ歴■■

Moodleの環境はいくつかバージョンアップを行なっております。

元々の動作環境は下記のとおりです。

moodle 2.4.3 / MySQL5.1.73

それを

2.4.3 -> 2.9.7 -> 3.5.2の順にアップグレードししばらく運用していました。

Moodle のDB文字コード(config.php)は

'dbcollation' => 'utf8mb4_unicode_ci'を指定。

(現在運用中)。


そして今回3.5.2→3.5.6にアップデート作業を実施しようとしたところ

問題が発生しました。


phpエラーログを出力するように設定しましたが、特にエラーは確認されず。


/etc/my.cnf を修正し、サービスを再起動し

Mariadbの「binlog_format=row」の適用と除外による動作確認しても変化なしでした。


今回のアップデート作業としてはバックアップ取得後に

前バージョンのmoodleディレクトリをリネームし、

最新版moodle3.5(.6)をダウンロードして、tarで展開し、

前バージョンと同じディレクトリ位置に展開し、

config.phpを前バージョンディレクトリからコピーしました。


そしてmoodleのadmin画面でプラグインのバージョン確認と更新を実施。

その後アカウントでログインしようとしたところ「データベースへの書き込み中にエラーが発生しました。」とエラーが発生しました。 



Richard I への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

Moodle設定ファイル (config.php) の最後尾に以下のような設定を追加した場合、どのようなエラーメッセージが表示されますでしょうか。

require_once(__DIR__ . '/lib/setup.php');

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

$CFG->debug = 32767;
$CFG->debugdisplay = 1;
評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿

Mitsuhiro Yoshida様


どうもありがとうございます。


config.php最後末に、下記を追加し、

----
$CFG->debug = 32767;
$CFG->debugdisplay = 1;
----


一連のVer3.5.6へアップデートを行いましたが、
アップデート後ログアウトし、再度ログインすると、
下記の内容が表示され、かつデバッグ内容等は表示されませんでした。


-------------

データベースへの書き込み中にエラーが発生しました。

このエラーに関する詳細情報

(リンク: https://docs.moodle.org/2x/ja/error/moodle/dmlwriteexception )

-------------


ちなみに、テーマは、「academi」を独自にカスタマイズしております。

https://moodle.org/plugins/theme_academi


どのような処理をすればよろしいでしょうか?

アドバイス頂けますと幸いです。

どうぞよろしくお願い致します。


Richard I への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

下記のようにMoodle設定ファイル (config.php) にテーマ設定を追加して、ログインできるかどうかご確認ください。

<?php  // Moodle configuration file

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->theme = 'clean';

$CFG->dbtype    = 'mariadb';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';

ログイン可能でしたら、ご利用のテーマ「Academi」をMoodle 3.5対応のバージョン (v3.5.2 (2018101301)) に置換してください。

[Moodle plugins directory: Academi: Versions]
https://moodle.org/plugins/pluginversions.php?plugin=theme_academi

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿

Mitsuhiro Yoshida様


誠にありがとうございます。

config.phpを教えて頂いたとおり処理し、

ログインしようとしましたら、今度はきちんとエラーメッセージの詳細が表示されました。

(ログイン自体はできませんでした)


エラーメッセージの内容は添付の画像のとおりです。

ご教授頂けますと幸いです。

どうぞよろしくお願い致します。

添付 moodle201907.jpg
Richard I への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

ありがとうございます。

お使いのMoodle用データベースの照合順序 (collation) の問題だと思います。

Moodleオンラインドキュメント (MySQL full unicode support - MoodleDocs) を参考に下記コマンドを実行してMoodle用データベースの照合順序を変更してください。

# php admin/cli/mysql_collation.php --collation=utf8mb4_unicode_ci

[MySQL full unicode support - MoodleDocs]
https://docs.moodle.org/36/en/MySQL_full_unicode_support#Steps_to_upgrade

評点平均: お役立ち度: ★★★★★★★ (1)
Mitsuhiro Yoshida への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿
Mitsuhiro Yoshida様

どうもありがとうございます。

データベースの照合順序を調整して、無事に問題が解決されました。

とても助かりました。ご丁寧にアドバイスくださいまして誠にありがとうございました。
Richard I への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿
Mitsuhiro Yoshida様

どうもありがとうございます。
お陰様でMoodleのVer3.5.2からVer3.5.7へアップデートすることができました。

ただ、ここで1点問題が生じてしまいました。

→Ver3.5.7にて管理者アカウントでログイン
→サイト管理→アカウント→「ユーザー一覧を表示する」
→アカウント名をクリック

→プロファイルを編集するをクリック

すると、下記のメッセージが表示され、管理者・学生のプロフィール内容を編集することができなくなってしまいました。

-------
例外 - Call to undefined function user_edit_map_field_purpose()

このエラーに関する詳細情報
(リンク先: http://docs.moodle.org/35/ja/error/moodle/generalexceptionmessage )
-------

テーマをcleanにして、
config.phpにて
$CFG->debug = 32767;
$CFG->debugdisplay = 1;
を追加しても上記表示だけの表示となっております。

どのようにすればこの問題を解消できますでしょうか?
お忙しい中恐れ入ります。
アドバイス頂けますと幸いです。

よろしくお願い致します。
Richard I への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

可能でしたら、以下の手順でも同じエラーが発生するかどうかご確認ください。

  1. Moodleの設定ファイルconfig.phpを残してMoodleプログラムすべてを別の場所に移動または削除する。
  2. 最新のMoodle 3.5.7+を入手する。
  3. 2.で入手したMoodleプログラムを展開 (解凍) する。
  4. 3.で展開したMoodleプログラムを1.のconfig.phpファイルがある場所に移動する。

[Moodle 3.5.7+の入手場所: Security-only-supported releases]
https://download.moodle.org/releases/security/

Mitsuhiro Yoshida への返信

Re: MoodleのVer3.5.2からVer3.5.6へアップデートできない

- Richard I の投稿
Mitsuhiro Yoshida様

どうもありがとうございます。
教えて頂いた手順のとおりに行ったらエラー表示されることなくうまくいきました。

user/lib.php
admin/user.php
など、ユーザー表示に関するPHPファイルをVer3.5.2で一部をカスタマイズしていて、
Ver3.5.7にアップデートする際Ver3.5.7のファイルをアップした後、
さらにこのVer3.5.2でカスタマイズしたファイルを上書きしてました。
これがいけなかったようです。

教えて頂いたとおりアップデートしたらうまくいきました。

お忙しい中、アドバイスくださいましてどうもありがとうございました。