プラグインチェックから抜けられない!?

プラグインチェックから抜けられない!?

- Takashi M の投稿
返信数: 18

おせわになります

あるプラグインをmoodle上からインストールしようと思って
Web画面上からプラグイン追加の手続きを取っていたのですが、インストールできます!表示の後に
「502 Bad Gateway」と表示され、上手く行かず…

その後は、表題の通りなのですがサイト管理者でログインするとプラグインチェックに飛ぶようになり、
一番下の Moodleデータベースを更新 ボタンを押下すると、「502 Bad Gateway」と表示され、
再度開くとまたプラグインチェックの画面に・・・と言う永久ループにハマってしまいました(´・ω・`)

ヒントが少なすぎて申し訳ないのですが、どこかチェックをした方が良いファイルなどを
お教えいただけますと幸いですm(_ _)m


Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

エラーの原因となっているプラグインをディレクトリ※1から手動削除されてはいかがでしょうか。

※1 プラグインディレクトリ例
/var/www/html/mod/xxxxxx
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
ご返信ありがとうございます^^

直接該当フォルダを消しちゃって良かったんですね!

複数個チェックに引っかかっているプラグインがあるので、
その中の1つでやってみました

1:手動でフォルダを消す
2:プラグインチェック時に「ファイルがありません」となる
3:プラグイン概要画面から該当プラグインの「アンインストール」押してみる
4:プラグインチェックの一覧から消える

他にも何個か引っかかっておりますので対応したいと思います

ありがとうございました!
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿

おせわになります

問題の出ているプラグインをすべて手動削除や、プラグイン概要ベージからアンインストールを実施してみました

しかし・・・プラグインチェック画面に飛ばされてしまいます(´・ω・`)

注意が必要なプラグインはありません。 と表示されていますがココから抜け出せず

「Moodleデータベースを更新する」→「502 Bad Gateway」

のループにハマってしまいました


他に確認すべき部分などございましたらご教授頂けませんでしょうか


添付 プラグインチェック.png
Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

可能でしたら、以下の内容をお教え頂けませんでしょうか。

  • Moodleプログラムの入手先 (例 Moodle公式サイト https://download.moodle.org/)
  • Moodleのバージョン (例 Moodle 3.10.8+)
  • Moodleが動作しているサーバのOSの種類およびバージョン (例 CentOS Linux release 7.9.2009)  
  • PHPのバージョン (例 PHP Version 7.4.27)
  • Moodleのカスタマイズの有無
  • 非標準プラグイン (https://moodle.org/plugins/) のインストールの有無

2021年 12月 29日(水曜日) 18:30の投稿に「あるプラグインをmoodle上からインストール」とありますが、具体的なプラグイン名および入手先をお教え頂ければ、当該プラグインのバグ報告調査も含めて、今回の問題を解決しやすくなると思います。

Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります

以下内容で現在運用いたしております
・Moodleプログラムの入手先 (例 Moodle公式サイト https://download.moodle.org/)
  → Moodle公式サイト です
・Moodleのバージョン (例 Moodle 3.10.8+)
  → Moodle 3.1.1 です(かなり古い状態です…)
・Moodleが動作しているサーバのOSの種類およびバージョン (例 CentOS Linux release 7.9.2009)
  → CentOS Linux release 7.4.1708 です
・PHPのバージョン (例 PHP Version 7.4.27)
  → PHP Version 5.6.27 です
・Moodleのカスタマイズの有無
  → カスタマイズはありません
・非標準プラグイン (https://moodle.org/plugins/) のインストールの有無
  → 何個かインストールされています
    (アンケート、Configurable Reports、進度バー、概括統計、Essentialテーマ・・・等々)
・今回新たにインストールしようと思ったプラグイン
  → Microsoft Word File Import/Export (Question Format) 3.6.3 です

その後、調査を進めまして、どうやら「Moodleデータベースを更新する」押下後「処理が終わらずにタイムアウトしている」様だという事がわかりました
DB (mariadb(5.5.56)) のプロセスを眺めながら見ていたら、1時間以上処理が動いている(何時間かかるか現時点ではまだ分かってません)状況で、apache側のタイムアウト設定は10分程度にしている為にタイムアウトしている状況でした

また、この問題に起因?してか、スケジュールタスクも実行できておらず、手動で ./admin/cli/cron.php を実行しようとすると「Moodle upgrade pending, cron execution suspended.」と表示され、タスクが実行できない事もわかりました
(本来、発行されるバッジが発行されて無かった事で気付きました…)

現状わかった事は以上になります
お手数をおかけいたしますが、ご教授頂ける内容ございましたらよろしくお願いいたします


Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

詳細ご説明頂きまして、ありがとうございます。

Moodleの設定ファイル (例 /var/www/html/moodle/config.php) に以下の記述を追加して、どのようなエラーメッセージが表示されるかご確認頂けませんでしょうか。

$CFG->debug=32767;
$CFG->debugdisplay=1;
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります

ご連絡頂きました記述を追加し、実行した所、画面上に表示される内容は「502 Bad Gateway」のままでした
apache のエラーログを見てみましたところ、以下の様な内容が出ていました (関係ない部分かもしれません…)

[Sat Jan 08 17:04:38.723156 2022] [autoindex:error] [pid 4112] [client 10.250.101.12:59499] AH01276: Cannot serve directory /var/www/html/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive

お手数おかけいたします
添付 502 Bad Gateway.png
Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

> apache のエラーログを見てみましたところ、以下の様な内容が出ていました (関係ない部分かもしれません…)

Apache (Nginx) の設定変更、PHPのアップグレード、その他、ウェブ関連のプラグインの追加インストール等、Moodleを動作させるためのサーバの環境を変えていない限り、Moodle非標準プラグインに問題があると思います。

大変お手数ですが、以下を実施した場合でも同じようなエラーが表示されるかご確認ください。

  • ウェブブラウザのキャッシュのクリア
  • コマンド実行によるMoodleキャッシュのクリア  (例 php /var/www/html/moodle/admin/cli/purge_caches.php)
  • Moodle用サーバの再起動

また、以下のページを参考にエラーを発生させているMoodle非標準プラグインの場所を特定して頂ければと思います。

[nginx + php-fpm でエラーが出て動かない場合の確認箇所と対処方法 | ぴぐろぐ]
https://pig-log.com/nginx-php-fpm-error/



Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります

アドバイスありがとうございます!
引き続き確認を進めて、再度ご報告させていただきます m(_ _)m
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります
・ウェブブラウザのキャッシュのクリア
・コマンド実行によるMoodleキャッシュのクリア (例 php /var/www/html/moodle/admin/cli/purge_caches.php)
・Moodle用サーバの再起動
全て試してみましたが駄目でした・・・

まだ空白(問題となるプラグインが無い状態)のプラグインチェックページへ強制的に飛ばされてしまいます
「Moodleデータベースを更新する」を押下後は DB 側のプロセスには上がってくる(中身は見れない…)ので、
DB側の何かしらの問題なのかなとも…??

mdl_logstore_standard_log が肥大化していたので、今ちまちまと消して行ったりして改善しないか試しているところです
参考にした書き込み → ココ

cron 実行できない問題も、こちら を参考にメンテナンスモードON/OFF やってみたりしましたがまだ未解決です(´・ω・`)


Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

可能でしたら、以下のプログラム修正の後、Moodleデータディレクトリのセッションディレクトリ (例 /var/www/moodledata/sessions) 内のファイルすべてを削除してください。

修正対象ファイル:
admin/index.php

修正箇所:
700行目

[ 修正前 ]
// make sure admin user is created - this is the last step because we need
// session to be working properly in order to edit admin account
 if (!empty($CFG->adminsetuppending)) {
    $sessionstarted = optional_param('sessionstarted', 0, PARAM_BOOL);
    if (!$sessionstarted) {
        redirect("index.php?sessionstarted=1&lang=$CFG->lang");
    } else {

[ 修正後 ]
// make sure admin user is created - this is the last step because we need
// session to be working properly in order to edit admin account
 if (!empty($CFG->adminsetuppending)) {
    $sessionstarted = optional_param('sessionstarted', 0, PARAM_BOOL);
    if (!$sessionstarted) {
//        redirect("index.php?sessionstarted=1&lang=$CFG->lang");
    } else {
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります
バックアップを取って、ソースの修正 & ~/sessions/ の中身全削除 を実行しました

現在の所状況は変わらず、プラグインチェックへの転送・cron.php 実行不可能 となっております
Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

早速ご確認頂きまして、ありがとうございます。

現在もMoodleプログラムの中に動作不良の原因となる非標準プラグインのプログラムファイルが含まれているような気がします。

現在のMoodleプログラム (例 /var/www/html/moodle) から設定ファイル (config.php) を除いたMoodleプログラム (例 /var/www/html/moodle_test) を使って新しいMoodleのインストールが可能かどうか確認することにより、問題箇所を特定できるかと思います。

Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります
すみません、私の理解能力が低く具体的な内容がイメージできていません…(´・ω・`)
理解があっているかご指導いただけると助かります

①今のMoodleプログラム ~/moodle/ からConfig.php以外のファイルをコピーした
 ~/moodle_test/ を作る

②「何か作業する事」で ~/moodle_test/ 側で立ち上がる Moodle 環境が作れる(?)

③ ↑のインストールが上手く行くか、エラー出るかで問題個所が特定できる

新しい Moodleのインストール が既存環境に影響出さずにどういう手順で出来るかが上手く分かっておらず…すみません
Takashi M への返信

Re: プラグインチェックから抜けられない!?

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

以下の手順で既存のMoodle環境に影響を与えずにMoodleのインストールをテストできるかと思います。

  1. Moodleテスト用データベースを作成する (例 xxxx_moodletest) 。
  2. Moodleインストールテスト用に既存のMoodleプログラムをコピーする。※1
  3. 2.でコピーしたMoodleプログラムディレクトリから設定ファイル (config.php) を削除する。
  4. Moodleインストールテスト用データディレクトリを作成する。※2
  5. ウェブブラウザ経由でMoodleインストールテスト用Moodleをインストールする。
  6. Moodleが正常にインストールされるかどうか確認する。
  7. Moodleテスト用データベースを削除する。
  8. Moodleインストールテスト用データディレクトリを削除する。
  9. Moodleインストールテスト用Moodleプログラムを削除する。
※1 既存のMoodleプログラムをコピーするためのコマンド例
# cp -Ra /var/www/html/moodle /var/www/html/moodle_test

※2 Moodleインストールテスト用データディレクトリ作成コマンド例
# mkdir /var/www/moodledata
# chmod 0770 /var/www/moodledata
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります

細かく提示頂きましてありがとうございます!
チャレンジして、またご連絡させていただきますm(_ _)m
Mitsuhiro Yoshida への返信

Re: プラグインチェックから抜けられない!?

- Takashi M の投稿
おせわになります

やっとまとまった時間が取れたので、ご教授いただいたインストールを行ってみました!

…なんの問題もなくインストールが完了し、まっさらな環境ができてしまいました(;'∀')

せめて、何かしらエラーを吐いてくれれば良かったのですが… _| ̄|〇
Takashi M への返信

【解決】プラグインチェックから抜けられない、Cron実行できない

- Takashi M の投稿

※自己解決出来ましたのでメモを残しておきます※

結論から申し上げますと、/var/www/moodledata/cache中身を全削除する事で解決出来ました
海外のmoodleコミュニティ等を参考に、壊れないかドキドキしながら実行しました・・・w

あまりにも cache フォルダの容量が大きくなりすぎ処理が上手く動かなかった様です
(purge_cache コマンドも何回か試し、エラー等無く処理完了していましたが、上手く動いて居なかった可能性があります)

cache 削除後に、再度プラグインチェック画面 → moodleデータベースの更新 押下で
通常通り動作が戻った事を確認しました

コマンドから Cron.php も実行できる湯になり、「Moodle upgrade pending, cron execution suspended.」表示は出なくなりました

Yoshida 様、色々とご教授頂きましてありがとうございました m(_ _)m