メンテナンス管理プラグイン
EC-CUBEの計画メンテナンス・緊急メンテナンスを柔軟に管理。自動スケジュール制御、事前予告バナー、リアルタイムカウントダウンタイマー、IPホワイトリスト(Cloudflare対応)、URLバイパストークン、操作履歴ログまでを網羅したプロ仕様のメンテナンス拡張プラグインです。
1. プラグイン概要と主な機能
『メンテナンス管理プラグイン (MaintenanceManagement)』は、EC-CUBE標準のメンテナンス機能を大幅に強化し、定期デプロイや商品データ一括更新、深夜帯の計画メンテナンスをスマートに運用するための拡張機能を提供します。
手動切替 & スケジュール自動制御
ワンクリック即時メンテナンス稼働と、開始〜終了日時を指定したCron不要の自動スケジュールに対応。
事前予告バナー (Live Preview)
メンテナンス開始の指定時間前(例: 30分前)から、ショップ最上部に固定告知バナーを自動表示。
リアルタイム カウントダウン
メンテナンス画面にサービス再開予定までの残り時間(日・時・分・秒)を自動カウントダウン表示。
IPホワイトリスト & Cloudflare対応
指定IPやCIDRからのアクセスを許可。CF-Connecting-IPやX-Forwarded-Forの実IP判定に対応。
バイパストークン (Cookie保持)
専用パラメータ付きURLからアクセスすることで、動的IP環境や外部検証者でもメンテナンスを安全に回避。
特定URL除外 & 操作履歴ログ
問い合わせ(/contact)等の除外パス指定や、管理者ごとの操作ログ(直近20件)を常時記録。
2. インストール・有効化
EC-CUBE管理画面の「オーナーズストア」経由、またはCLIコマンドから簡単に導入できます。
管理画面 → オーナーズストア → プラグイン一覧 より「MaintenanceManagement」をインストールし、有効化を完了してください。
# プラグインのインストール
bin/console eccube:plugin:install --code=MaintenanceManagement
# プラグインの有効化(設定・ログ用テーブル自動作成)
bin/console eccube:plugin:enable --code=MaintenanceManagement
# キャッシュクリア
bin/console cache:clear --no-warmup3. 基本設定とスケジュール自動制御
管理画面 → 設定 → システム設定 → メンテナンス管理 を開き、メンテナンスの実行モードやメッセージを設定します。
1. メンテナンスモードの実行制御
| 設定項目 | 動作と特徴 |
|---|---|
| 今すぐメンテナンスモードを有効にする | チェックを入れて保存すると、開始・終了日時の設定に関わらず即座にメンテナンスモードが最優先で稼働します。 |
| スケジュールで自動制御する | チェックを入れると、指定した「開始日時」から「終了日時」の間だけ自動的にメンテナンス画面を表示します(Cron等のサーバー設定は不要です)。 |
2. メッセージのリッチテキスト編集 (Summernote)
「メッセージ」欄にはリッチテキストエディタ(Summernote)を搭載しています。文字の太字・色付け、リンク(<a>)、画像(<img>)、テーブルなどを視覚的に編集し、分かりやすいメンテナンス案内を作成できます。
5. ホワイトリストIP・バイパス・除外パス
メンテナンス稼働中であっても、管理者や開発会社、特定ページへのアクセスを安全に許可するための3重の回避仕組みを備えています。
1. 許可するIPアドレス (CIDR & Cloudflare対応)
1行に1つずつ許可したいIPアドレス(例: 203.0.113.10)またはサブネットマスク(例: 198.51.100.0/24)を入力します。
Cloudflare や AWS CloudFront 等のCDN・ロードバランサー配下環境でも、CF-Connecting-IP や X-Forwarded-For ヘッダーを自動解析して正確なクライアントIP判定を行います。
2. バイパストークン(URLアクセストークン)
テレワーク等でIPアドレスが変動する場合でも、設定した秘密トークン付きURLから一度アクセスするだけで、Cookieにトークンが保存され通常通りサイトを閲覧・検証できます。
# バイパス用URLの例
https://your-shop-domain.com/?maintenance_bypass=your_secret_token_1233. メンテナンス除外URLパス
お問い合わせページ(/contact)やプライバシーポリシー(/help/privacy)など、メンテナンス中も一般公開しておきたいURLパスを1行に1つずつ指定できます。
6. ロゴ画像・カウントダウンタイマー
メンテナンス画面はショップのブランドに合わせたクリーンで信頼感のあるデザインを採用しています。
- 独自ロゴ画像のアップロード: ショップのロゴ画像(JPG, PNG, GIF, WebP, SVG / 最大2MB)を登録すると、メンテナンス画面上部にブランドロゴが表示されます(未登録時はアイコン 🛠)。
- 残り時間カウントダウンタイマー: 「カウントダウンタイマー表示」を有効にすると、終了日時までの「日数・時間・分・秒」を1秒単位でリアルタイム表示。予定時刻に達すると「まもなくサービスを再開いたします」という案内へ自動更新されます。
- 画面プレビュー機能: 画面右下の「プレビュー」ボタンをクリックすると、現在の設定内容を反映したメンテナンス画面を別タブで即座に確認できます。
7. 操作履歴(監査ログ)
プラグイン設定画面の下部には、直近20件の操作ログが自動記録されます。
| 操作種別 | 記録内容と用途 |
|---|---|
| 手動ON / 手動OFF | 誰がいつメンテナンスモードを手動で切り替えたかを記録。 |
| スケジュール更新 | 自動制御の開始・終了日時の変更内容を記録。 |
| 設定更新 | メッセージやIP制限、バナー設定などの変更履歴と操作元IP・管理者アカウント名を記録。 |
8. よくある質問・トラブルシューティング
/%eccube_admin_route%/)は自動的にメンテナンス対象から除外されるため、いつでも管理画面にログインしてメンテナンス解除や設定変更を行えます。.maintenance ファイルはDB接続すら行わない緊急復旧用の仕組みです。本プラグインはデータベースや管理画面が稼働している通常運用時(バージョンアップ作業、商品データ更新、定期メンテナンス等)に、スケジュールやIP制限をかけて安全に作業を行うための機能です。Accept: application/json リクエストやAJAX通信に対しては、HTMLではなく HTTP 503 Service Unavailable の JSON レスポンスが自動返却されます。9. サポート・ライセンス
本プラグインに関するご質問、カスタマイズのご要望、不具合のご報告がございましたら、EC-CUBEオーナーズストアのお問い合わせ窓口または開発元(CubeLab)までお気軽にお問い合わせください。
※ EC-CUBE本体のバージョンアップやSymfonyフレームワークの仕様変更に伴う機能改善については、随時アップデートにて対応を予定しております。