開発中のプラグインを無効化した途端にエラー画面になった時の備忘録です。
公式に審査されているものなら、管理画面から無効化するのが当然ベストです。
1 |
# mv HogePlugin HogePlugin_bak |
ここでサイトにアクセスすると500番エラーで表示されない。
1 2 |
mod_fcgid: stderr: PHP Fatal error: Class 'PluginほげプラグインServiceProviderほげプラグインServiceProvider' not found in /var/www/vhosts/example.net/httpdocs/ec/src/Eccube/Application.php on line 688 |
エラー発生。
プラグインの設定が残ってしまっています。
1 2 3 4 5 6 7 8 9 |
src/Eccube/Application.php // プラグインをロードする. // config.yml/event.ymlの定義に沿ってインスタンスの生成を行い, イベント設定を行う. foreach ($finder as $dir) { //config.ymlのないディレクトリは無視する if (!file_exists($dir->getRealPath().'/config.yml')) { continue; } |
ECCUBE3はプラグイン内のconfig.ymlのないプラグインは読みこないように設計されているので一旦プラグイン名を元に戻してconfig.ymlをリネームします。
1 |
# mv HogePlugin_bak HogePlugin |
1 |
# mv config.yml mv config_bak.yml |
更にサイトにアクセスしてECCUBE3に読み込ませて
プラグインをリネームしてサイトにアクセスする
1 |
# mv HogePlugin HogePlugin_bak |
サイトやログにエラーがなし。
これで開発中のプラグインを無効化することが出来ました。
目次
エラーが残る
config.ymlに名前を戻す
1 |
# mv config_bak.yml config.yml |
プラグインのレコードがデータベースに残っていたら【dtb_plugin】テーブルにて該当レコードをphpMyAdmin等で消して下さい。これでエラーが全部消えました。
※画像のプラグインがエラーを起こしていたわけではないです。便宜上。