エスプリフォートでは、ECによる請負開発やプロダクト(自社サービス)開発は長く行っており、その中の一つとしてEC-CUBEももちろん取り扱ってきました。
このEC-CUBEを保守・運用をしている際などに発生することがあるプラグインを管理画面から削除できない場合の緊急対処手順をご紹介していきます。
EC-CUBEのプラグインを管理画面から削除できない場合の緊急対処手順
プラグインをインストールしている途中にエラーが発生したり、プラグインのインストールが正常に完了したはずなのにEC-CUBEがエラーで動かなかったり、プラグインを有効にするとEC-CUBEがエラーで動かなくなったなどということがあります。
そのときはプラグインが原因でEC-CUBEにエラーが発生し、管理画面から削除できないと場合もあります。
その際に原因となるプラグインを取り除く緊急対処手順をご紹介します。
1、サーバーにある削除したいプラグインディレクトリを削除
SSHやSFTPから「[EC-CUBEルートパス]/app/Plugin/[削除したいプラグインディレクトリ]」を削除します。
※対処のディレクトリの削除権限がない場合は、SSHから「chmod 変更したい権限 -R ディレクトリ」のコマンドで権限を与えるようにしてください。
2、composer.jsonから削除したいプラグインの定義を削除
「[EC-CUBEルートパス]/composer.json」をエディタで開き、「"ec-cube/[削除したいプラグインコード]": "^2.1",」などのように記載がある行を削除して、上書き保存します。
※「^2.1」の部分は、プラグインのバージョンであるため、対象のプラグインによって変わります。
3、「dtb_plugin」に登録されている削除したいプラグインデータを行削除
データベースの「dtb_plugin」テーブルに登録されている削除したいプラグインのデータを行ごと削除します。
4、データベースからプラグイン用の独自テーブルを削除
プラグイン独自で利用するテーブルは、「plg_[削除したいプラグイン名]」というテーブル名でデータベースに登録されていますので、削除したいプラグインに該当するテーブルがあれば、削除します。
ただし、プラグインによってはテーブルを利用していない場合もありますので、利用していない場合は該当のテーブルはないため、テーブルの削除は不要となります。
5、プロキシファイルの再生成
rootユーザーでSSHから「cd」コマンドにて「EC-CUBEルートパス」まで移動し、「php bin/console eccube:generate:proxies」コマンドを実行してください。
テーブルを利用しているプラグインは、このコマンドを実行しておかないといけません。