管理画面から8.2.1にアップデート時に500のエラーになる

2020年4月25日 at 19:49

※記載が不十分だったため追記しました(2020/04/30)


以前こちらで質問させていただきました。

http://concrete5-japan.org/community/forums/chat/post-18865/

ご案内を受けた「concrete5のアップデート」をもとに
管理画面からアップデータをしたところ8.2.1のアップデートでエラーとなりました。

5.7.5.6 ⇒ 5.7.5.13 :成功
5.7.5.13 ⇒ 8.2.1  :失敗

具体的には、管理画面⇒システムと設定⇒concreate5をアップグレード⇒8.2.1のダウンロードボタンを押下

ここでエラーが発生した後、「concreate5をアップグレード」を押下すると
添付の500のエラー画面が出たままになります。

デバッグモードなどにしているのですが
エラー画面は出力されていません。

〇ログ
/var/log/httpd/error_log
PHP Fatal error: Class 'Illuminate\\Support\\Facades\\Facade' not found in /var/www/html/concrete/vendor/illuminate/support/Illuminate/Support/Facades/Form.php on line 6

このぐらいしか出ていませんでした。

〇該当のphp内容
$ sudo cat /var/www/html/concrete/vendor/illuminate/support/Illuminate/Support/Facades/Form.php
<?php namespace Illuminate\Support\Facades;

/**
* @see \Illuminate\Html\FormBuilder
*/
class Form extends Facade {

/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor() { return 'form'; }

}


原因が分からず、ご教示いただけないでしょうか。
原因が特定できるログについてもご存じでしたらお願いいたします。

添付: error.jpg
タグ:

Re: 管理画面から8.2.1にアップデート時に500のエラーになる

2020年5月6日 at 16:40
再度スナップショットで戻してから同様の処理をやってみたのですが
「アップデート」ではなく、8.2.1の「ダウンロード」を実行したときに
500のエラーが出て先に進めない状況です。

情報連携にミスがあり申し訳ありません。
ダウンロード時に問題がありそうなのですが、何か確認する場所はございますでしょうか。
サーバ側の設定でconcreate5のサイトに対して何か設定しなくてはならないでしょうか。

■新環境
aws
Amazon Linux2
 

Re: 管理画面から8.2.1にアップデート時に500のエラーになる

2020年5月7日 at 11:14
concrete5 の最新ファイルをダウンロード中にタイムアウトエラーなどが発生して、サーバー上に最新ファイルが上手くダウンロードできなかった可能性があります。

また 5.7 から 8 へのアップデートはデータベースの中身を大幅に書き換えるため、作業途中でストップしてしまう場合があります。

SSH アクセスなどがあれば

- concrete5 8.2.1 のコア部分の /concrete フォルダを直接サーバー上で上書きをする
- SSH で CLI からアップデートを行う

が良いかと思います。

また、8.2.1 にアップデートする理由は何でしょうか?
我々のドキュメントが古かったりしたら申し訳ないのですが、
5.7.5.13 から 8.5.2 に一気にアップデートできるようになっています。
(その場合もアップデートの処理に時間がかかるので、SSH を使ってのアップデートをおすすめします)
 

Re: 管理画面から8.2.1にアップデート時に500のエラーになる

2020年5月7日 at 12:47
>Katz様

返信ありがとうございます。
なるほど、タイムアウトが発生している可能性がありますか。

SSHは可能ですので、コア部分を置き換えてやってみたいと思います。

8.2.1については、concreate5の管理画面からアップデートする際に
8.2.1にアップグレードが出ていたためそのように書きました。
段階的にアップグレードするのだと思いましたが違うでしょうか。

当方としては最新版にあげれればいいと考えておりますので
8.2.1へのこだわりは特にございません。

頂いた情報で更新を実施してみます。
 

Re: 管理画面から8.2.1にアップデート時に500のエラーになる

2020年5月7日 at 13:03
> 8.2.1については、concreate5の管理画面からアップデートする際に
> 8.2.1にアップグレードが出ていたためそのように書きました。
> 段階的にアップグレードするのだと思いましたが違うでしょうか。

はい。
コア部分だけですが、8.5.0 か 8.5.1 まではうまく行かなかったのですが、8.5.2 ではうまくいくようになりました。
管理画面の情報は古くなっていると思われます。

一度、コマンドで試してみてください。

SSH で実行するとアップグレードの進捗をより細かく確認できます。
アップデートの途中でコケてしまっている部分のエラーを取得しやすくなるので、
またその時は migration のどの部分でストップしてしまったかなどを押してください。

あと、アドオンやカスタマイズをしているところがあると途中でコケる確率が高くなりますので、先にアドオンのアップデートも必要になってくる場合があります。

それでは。
 

Re: 管理画面から8.2.1にアップデート時に500のエラーになる

2020年5月12日 at 15:42
お世話になっております。

http://concrete5-japan.org/help/5-7/developer/installation/upgrading-concrete5/?
コマンドラインからアップデートする(バージョン8以降)


上記にて説明されている内容に沿って更新をしたのですが、
updateコマンドを実行したところ、以下の表記が出力されました。

--------------------------------------------------------------------------------------
# ./concrete/bin/concrete5 c5:update
#!/usr/bin/env bash

pushd . > /dev/null
SCRIPT_PATH="${BASH_SOURCE[0]}";
while([ -h "${SCRIPT_PATH}" ]) do
cd "`dirname "${SCRIPT_PATH}"`"
SCRIPT_PATH="$(readlink "`basename "${SCRIPT_PATH}"`")";
done
cd "`dirname "${SCRIPT_PATH}"`" > /dev/null
SCRIPT_PATH="`pwd`";
popd > /dev/null

php -d short_open_tag=On "${SCRIPT_PATH}/concrete5.php" "$@"
#
--------------------------------------------------------------------------------------
と出力されました。

スクリプトとして実行できていないようなのでshコマンドを付与して実行してみました。
--------------------------------------------------------------------------------------
#sh ./concrete/bin/concrete5 c5:update
./concrete/bin/concrete5: 行 2: ?php: No such file or directory
./concrete/bin/concrete5: 行 4: 予期しないトークン `'DIR_BASE'' 周辺に構文エラーがあります
./concrete/bin/concrete5: 行 4: `if (!defined('DIR_BASE')) {'
--------------------------------------------------------------------------------------

ダウンロードしたzipはそのままバイナリでサーバに送信し、サーバ内でunzipにより解凍しております。
何か資材として不都合があったりしたのでしょうか。

当初はメンテナンスモードに変更できていましたが、
今メンテナンスモードに変更しようとすると、スクリプトが動作しませんでした。
→同じようにスクリプト内容が出力される。
--------------------------------------------------------------------------------------
# ./concrete/bin/concrete5 c5:config -g set concrete.maintenance_mode true
#!/usr/bin/env bash

pushd . > /dev/null
SCRIPT_PATH="${BASH_SOURCE[0]}";
while([ -h "${SCRIPT_PATH}" ]) do
cd "`dirname "${SCRIPT_PATH}"`"
SCRIPT_PATH="$(readlink "`basename "${SCRIPT_PATH}"`")";
done
cd "`dirname "${SCRIPT_PATH}"`" > /dev/null
SCRIPT_PATH="`pwd`";
popd > /dev/null

php -d short_open_tag=On "${SCRIPT_PATH}/concrete5.php" "$@"
--------------------------------------------------------------------------------------

sakuraエディタで8.5.2のconcreate5スクリプトの文字コードを確認しましたが
UTF-8になっていました。

更新についてご存じでしたらご教示ください。