プラグインインストール時のエラーを防止する方法 も書きましたので、合わせてご覧ください
EC-CUBE4 になって、プラグインの管理方法が大きく変わりました。
これに伴い、共有レンタルサーバーなど、リソースの少ない環境では以下のような問題が発生する場合があります。
プラグインのインストール時に高負荷な状態が発生し、OOM Killerでhttpdのプロセスが殺される。そのため、プラグインのインストールが完了しない。
インストール時以外に、有効化/無効化時、アンインストール時にも発生します。
これらの処理が完了しない場合、以下のような状態となります
- 「インストール完了」の表示になっても、「有効/設定」ボタンが表示されない
- システムエラーになる
- PHPエラー画面が表示される
- レスポンスが十数分返ってこない
対処法
対処方法はケースバイケースになりますが、以下の順で試してみることをおすすめします
Symfony のキャッシュクリア
管理画面→コンテンツ管理→キャッシュ管理からキャッシュクリアする
管理画面が開かない場合は、以下のいずれかをお試しください。
(キャッシュの強制削除は自己責任で...)
## Symfony コマンドでのキャッシュクリア
bin/console cache:clear --no-warmup
## キャッシュの強制削除
rm -rf /path/to/ec-cube/var/cache/*
Composer クラスマップの再生成
こちら を参考に、 Composer コマンドをインストールしておいてください
php composer.phar dumpautoload
上記コマンド終了後、 Symfony のキャッシュクリアを実施してください
Composer install コマンドの再実行
php composer.phar install
コマンドラインでのプラグインの再インストール
管理画面からインストールに失敗しても、コマンドラインからインストールできる場合があります。
## クラスマップが壊れている場合は再生成(オプション)
php composer.phar dumpautoload
## エラーになっているプラグインを一旦削除
bin/console eccube:composer:remove ec-cube/<PluginCode>
## 再インストール
bin/console eccube:composer:require ec-cube/<PluginCode>
## 有効化
bin/console eccube:plugin:enable --code <PluginCode>
既に運用中の場合は、プラグインをアンインストールすることによりデータが削除されてしまう恐れがあります。必ずデータベースのバックアップを取得したあと、上記コマンドの実行をお願い致します。
何度か繰り返す
プラグインインストール/有効化/無効化 時のエラーは、確実に再現性のあるものではなく、うまくいく場合もあります。
何度か繰替えしてみることをおすすめします。
これらを実行しても解消しない場合は、エラーログやエラー画面のスクリーンショットとともにコメント覧にてお知らせください。