先日EC-CUBEのプラグインをアップデートした直後に有効化できなくなるシステムエラーに遭遇したので対策をメモしておきます。
有効化のボタンを押すとシステムエラーが起きるといった内容。もちろん有効化は完了していません。
デバッグモードで確認したところ「plugin already installed.」とのことでした。
同様のエラーに遭遇しましたら下記内容を試してみてください。
EC-CUBEのプラグインアップデート後に有効化できないシステムエラー
解決するまでに計2つのエラーが発生しましたので、順を追って対応をまとめます。
plugin already installed.
プラグインのアップデート後に有効化しようとすると、システムエラーが発生して有効化できない現象。
Eccube\Exception\PluginException: plugin already installed. (uncaught exception) at /○○/src/Eccube/Service/PluginService.php line 501
こちらは「プラグインはすでにインストールされている」といった内容で、どうやらデータべースに該当プラグインのテーブルが2つ作られていることが原因のようです。
データべース(dtb_plugin)を確認したところ同じプラグインが2つ作られていたため、phpMyAdminより古い方を削除。
これで上記エラーが消えて有効化が可能となりました。
RouteNotFoundException
上記の対応でプラグイン有効化は可能となりましたが、デバッグモード時に管理画面に入れなくなるエラーが発生しました。(通常モードでは問題なく動いている)
Unable to generate a URL for the named route "○○" as such route does not exist.
「名前付きルート「○○」のURLが存在しないためそのURLを生成できない」といった内容。
こちらはキャッシュを削除したところエラーが消えました。
FTPソフト等でサーバーを覗き「var/cashe」以下のファイルを削除することで解決できます。