開発中のプラグインを無効化した途端にエラー画面になった時の備忘録です。
公式に審査されているものなら、管理画面から無効化するのが当然ベストです。
# mv HogePlugin HogePlugin_bak
ここでサイトにアクセスすると500番エラーで表示されない。
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
エラー発生。
プラグインの設定が残ってしまっています。
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をリネームします。
# mv HogePlugin_bak HogePlugin
# mv config.yml mv config_bak.yml
更にサイトにアクセスしてECCUBE3に読み込ませて
プラグインをリネームしてサイトにアクセスする
# mv HogePlugin HogePlugin_bak
サイトやログにエラーがなし。
これで開発中のプラグインを無効化することが出来ました。
目次
エラーが残る
config.ymlに名前を戻す
# mv config_bak.yml config.yml

プラグインのレコードがデータベースに残っていたら【dtb_plugin】テーブルにて該当レコードをphpMyAdmin等で消して下さい。これでエラーが全部消えました。
※画像のプラグインがエラーを起こしていたわけではないです。便宜上。
