バージョン5.1.0アップデート途中でサイトが表示できなくなりました。

【環境情報】
・baserCMSのバージョン:5.0.19
・レンタルサーバー名:リトルサーバ
・使用テーマ:bc_sampleをカスタマイズしたもの
・PHPスキル(自己評価):D

こんにちは。バージョン5.1.0アップデートの通知が来たので,アップデートガイドに従って進めていたのですが,途中でサイトが表示できなくなりました。
具体的にはアップデートガイドの「 3. baserCMS v5.0.20 にアップデートする」の部分で起こりました。
アップデート通知からアップデート画面に移動して,最新版をダウンロードのボタンを押したところ,アップデート可能なバージョンが5.0.20になりました。そこからもう一度アップデートをしたところ,HTTP ERROR 500の表示が出て,サイトが表示できなくなりました。
復旧の方法がわからないのでご教示いただきたいです。よろしくお願いいたします。

@gihan

5. baserCMS v5.1.0 にアップデートする

でエラーになったということでしょうか?

4. BcUpdateSupporter で、v5.0.20 改善プログラムを実行する

は実行されましたでしょうか??

@ryuring さま
説明がわかりにくくて申し訳ありません。
アップデートガイドの記述では 「3. baserCMS v5.0.20 にアップデートする」の
「最新版をダウンロードし、その後、アップデートを実行します。」の所でエラーになりました。

  1. BcUpdateSupporter で、v5.0.20 改善プログラムを実行する
  2. baserCMS v5.1.0 にアップデートする
    の前段階だったので,v5.0.20改善プログラムは実行しておりません。
    v5.0.19改善プログラムは実行しました。
    よろしくお願いいたします。

@gihan いくつか確認をお願いします。

ログの確認

/logs/ フォルダにログが貼ります。error.logdebug.log をこちらに貼り付けてください。

5.0.18のアップデート処理の実行確認

次の4つのパスがパッチとなっています。

/vendor/baserproject/baser-core/config/update/5.0.18/bin/
/vendor/baserproject/baser-core/config/update/5.0.18/config/
/vendor/baserproject/baser-core/config/update/5.0.18/src/
/vendor/baserproject/baser-core/config/update/5.0.18/webroot/

アップデート処理で、上記のフォルダ内の各ファイルが次のパスに上書きされるはずですが、上書きされていない場合は手動で適用してください。

/bin/
/config/
/src/
/webroot/

5.0.19のアップデート処理の実行確認

次のパスがパッチとなっています。

/vendor/baserproject/baser-core/config/update/5.0.19/config/

アップデート処理で、上記のフォルダ内の各ファイルが次のパスに上書きされるはずですが、上書きされていない場合は手動で適用してください。

/config/

その上で、再度ブラウザにアクセスし、同様の画面となる場合は、再度、ログを添付お願いします。

@ryuring さま
error.logとdebug.logを貼り付けようとしましたが,debug.logのファイルサイズが4MBを超えていたので添付できませんでした。
error.log.txt (2.3 MB)
error.logの拡張子をtxtにして添付しております。
「5.0.18のアップデート処理の実行確認」の方は該当フォルダのファイルが上書きされているようでした。
「5.0.19のアップデート処理の実行確認」の方はplugins.phpというファイルのみでしたが上書きされていないようです。(ファイルの中身は注釈がついているだけでコード自体は同じようでした。)

当方の現状ですが,サーバのバックアップを利用してアップデートに失敗する前の状態に戻しております。(現在はサイトも表示されています)
ここからアップデートすると再びサイトが表示できなくなるのではと思い,5.0.19のままアップデートは控えております。
お手数をおかけしますが,どのようにすればアップデートできるかご教示お願いいたします。

@gihan ログを見る限りでは、バーガーエディタが邪魔をしているように見えます。

バーガーエディタにおけるエラーが 2024-07-20 22:12:37 まで発生して、その後は発生していません。もしかしたら、そのタイミングで、一度、古いバージョンに戻されたのではないでしょうか?

バーガーエディタをオフにした状態でアップデートを実行してみてください。

@ryuring さま

確かにログを見るとバーガーエディタのエラーは多いですね。貼り付けることができなかったdebug.logにもありました。

上記のerror.logはサーバのバックアップで古いバージョンに戻す直前にコピーしたものです。時間的に2024-07-20 22:12:37以降にアップデート作業を始めてサイトが表示できなくなったのではないかと思います。

古いバージョンに戻したのは2024-07-22 23時以降で,実際に復旧したのは23日になってからです。
現在のerror.logやdebug.logを確認しましたが,バーガーエディタ関連のエラーは多いようです。

ご教示いただいた通り,バーガーエディタをオフにしてアップデートしてみました。
しかし,同じところでエラー500表示が出てサイトが表示できなくなりました。
お手数をおかけしますが,引き続き良い方法がありましたらよろしくお願いします。

@gihan そうでしたか。次の2点をお願いします。

  1. 再度、最新のログを添付する

  2. デバッグモードに切り替えてアップデートを試す
    デバッグ方法 | baserCMS Documentation

@ryuring さま
ありがとうございます。7/26にアップデートした前後の時間のログを添付します。
debug.log.txt (1.1 MB)
error.log.txt (496.7 KB)

error.logの時間を確認したところ
2024-07-26 19:09:55 の後にバーガーエディタをオフにしています。
2024-07-26 20:04:33 の後にアップデート作業を開始しています。
2024-07-26 21:36:25 の後はアップデートに失敗して,アップデート前の状態に戻しています。バーガーエディタはオフのままです。
バナー管理プラグインのエラーが頻繁に出ているように感じました。
今からデバッグモードにしてアップデート作業をしてみます。

@ryuring さま
デバッグモードにてアップデート作業を行いましたが,結果はアップデートできませんでした。
画面には以下のように表示されました。
Fatal error: Type of BcBlog\ServiceProvider\BcBlogServiceProvider::$provides must not be defined (as in class Cake\Core\ServiceProvider) in /home/gihan/pub/gihan-page/vendor/baserproject/bc-blog/src/ServiceProvider/BcBlogServiceProvider.php on line 0

その後,アップデート前に戻して,次は,5.0.20にアップデートするときに「利用可能なバージョンにかかわらず,composer.jsonの内容でダウンロードする」にチェックを入れて最新版をダウンロードボタンを押したところ,利用可能なバージョンが5.0.19と表示され,以降アップデート作業を進めることができなくなりました。

引き続きよろしくお願いいたします。

@gihan

4. BcUpdateSupporter で、v5.0.20 改善プログラムを実行する を実行されていない可能性があります。いかがでしょうか?

「利用可能なバージョンにかかわらず,composer.jsonの内容でダウンロードする」は、デバッグモードの際のみに表示される特別な機能となり、いうなればいざという時用です。普段は使いません。

サーバーキャッシュを削除した上で、一度、ログインしなおしてみてください。

アップデート時バナープラグインをオフにしてから試してみてください。

@ryuring さま ありがとうございます。

v5.0.20 改善プログラムを実行するのはv5.0.20にアップデートした後だと思います。私の環境でアップデートに失敗するのはv.5.0.20にアップデートする際なので,v5.0.20 改善プログラムを実行する前段階です。v5.0.19改善プログラムは実行しています。v5.0.20 改善プログラムを実行するボタンは押せない状態でした。

この2点を設定してアップデートしてみます。

@ryuring さま

アップデート実行してみましたが,今まで同様,v5.0.20にアップデートするところでエラーになります。今回もデバッグモードでやってみましたが先日と同じエラーメッセージが出ました。

こちらのような感じでbaserCMS5.0.19でデータメンテナンスよりバックアップを作成し,baserCMS5.0.20を新規にインストールして,バックアップデータを使用してデータの復元を行うことでv5.0.20にすることは可能でしょうか。

そうなんですね。
ただ次のエラーが出たとおっしゃってましたが、これが 5.1.0 のコードでしか発生しないエラーだったからなんです。

Fatal error: Type of BcBlog\ServiceProvider\BcBlogServiceProvider::$provides must not be defined (as in class Cake\Core\ServiceProvider) in /home/gihan/pub/gihan-page/vendor/baserproject/bc-blog/src/ServiceProvider/BcBlogServiceProvider.php on line 0

うーん、ちょっと原因究明が難しいですね、、、

そうですね、試していないのでわかりませんが、こちらをやってみる価値はあるかもですね。

その際、DBのバージョンがずれると思いますので、データの復元後に、アップデートサポーターを利用して次の2つを実施してください。

  • アップデートサポーター → マイグレーション実行 → マイグレーション済としてマーキングをクリック
  • アップデートサポーター → スクリプト実行 → DBのバージョン番号更新 → 5.0.20と入力 → DBバージョンを更新をクリック

@ryuring さま ありがとうございます。

そうなのですね。どうしてそのメッセージが出たのかは不明ですが,アップデート前の状態でダッシュボードに表示される更新(赤丸2)のボタンをクリックすると,
現在のバージョン状況

  • BaserCore の利用可能なバージョン: 5.1.0
  • BaserCore の現在のプログラムのバージョン: 5.0.19
  • BaserCore の現在のデータベースのバージョン:5.0.19
    と表示され,ここで5.1.0という表示を見ることができます。5.0.19改善プログラムを実行して更新画面から最新版をダウンロードすると,* BaserCore の利用可能なバージョン: 5.0.20と変わります。そのままインストールすると途中で失敗するという状態です。

v5.0.20を新規にインストールしてバックアップから復元しようと試みたのですが,v5.0.20がインストールできませんでした。ライブラリのインストールから進まず,ページをリロードするとエラー500が出るという状態です。指定されたファイル・フォルダには書き込み権限はありました。
これもアップデートに失敗することと関係があるのでしょうか。

ほかの方法としてはSSHでアップデートすることができるかなと考えていますが,可能かどうかがわからないのでご教示いただきたいです。

よろしくお願いいたします。

@gihan そうなんですね、リトルサーバーは試したことがないのですが、それが原因の可能性かもしれません。

インストール時や、アップデートの最新版ダウンロード時には、裏側で composer が走っています。

話が複数(アップデートと新規インストール)走っていて、少しややこしくなっているので、まず、5.0.20 の新規インストールで、SSHを利用して次を試して頂けますか?

curl -s https://getcomposer.org/installer | php
composer.phar install

こんにちは、自分も同様に5.0.20を新規インストールしようとしてエラーになりました。
(composerダウンロード、インストール完了後、このページは機能してませんと表示される)
また自分の環境(xampp)では現在、さらに前のバージョン(5.0.19)のインストーラーを使用してインストールした場合もエラーが出てしまい、5.0系統の新規インストールが出来ない状態です。
(なお、5.1.0のインストーラーを使用して新規インストールした場合は問題なくインストールされました。)

この一連のエラーについて関係あるかわかりませんが、以前より気になっている点がありまして、
5.0.20及び5.1.0登場前、BC5の古いバージョン(5.0.17や5.0.18)のインストーラーを使用してインストールして環境状態を確認すると、バージョンの表示がその時点の最新バージョン(5.0.19)になっていることがありました。

その時は古いバージョンのインストーラーを使用して新規インストールしても、自動的に最新のバージョンにしてくれる仕様なのかなと思っていたのですが、
今回も5.0.20のインストーラーを使用して新規インストールしようとすると、自動的に最新(5.1.0)をインストールしようとしてエラーが出てしまうのかも・・・?

私も過去のバージョン(5.0.17)で試してみましたが、
ライブラリのインストール後にエラーになりますね。

私の環境で発生している事象は、以下で回答した内容と同じ事象のようです。

githubを見る限り、5.0系ではこの型定義が無いはずですが、
ダウンロード版だとインストール時に入ってしまいますね。
可能性としては5.0系でも5.1系のものを取得してしまっている、などでしょうか。

@ryuring さま ありがとうございます。

すみません,思いついたことをいろいろ書いてしまいました。
ご教示いただいた方法でv5.0.20を新規にインストールしてみます。

@ciao-h さま ありがとうございます。
xampp環境でもインストールできないのですね。
私も5.0.20,5.0.19,5.0.15を試してみたのですが,どれもインストールできませんでした。Composerのダウンロードまではできているようでしたが,いずれもインストール画面にたどり着きませんでした。(5.0.19のみエラーメッセージが出ました)
引き続きチャレンジしてみます。