1. プラグイン概要・サイト復活の仕組み
EC-CUBEでショップを運営していると、サーバーの突然のハードウェア故障、データセンターの障害、改ざんやランサムウェア被害、あるいは急なホスティング会社移転など、予測不能なアクシデントに遭遇するリスクが常に存在します。
- DBダンプだけでは元に戻らない: 商品画像(
/html/upload/save_image)や、カスタマイズしたTwigテンプレート、導入済みプラグインが復元されず、見た目が崩壊してショップが再開できない。 - 高額な専用復元ツールのハードル: 市販の復元プラグインは55,000円など高価な上、DBの接続情報やSSH操作など非開発者には難解な専門設定を要求される。
- サーバーの容量制限でアップロードできない: 一般的なレンタルサーバーの初期設定(php.ini)により、数十MB〜数百MBのバックアップファイルをアップロードしようとすると「413 Request Entity Too Large」エラーで停止してしまう。
本プラグイン(SiteBackupMigrator)は、これらの課題をすべて解決するために開発されました。
管理画面のボタンを1回押すだけで、全テーブルデータ・全商品画像・テンプレート・プラグインソースを丸ごとひとつのZipファイルとしてPCへダウンロードできます。
万が一の全損事故が発生した場合でも、新サーバーにEC-CUBEを設置して本プラグインからZipをアップロードするだけで、以前とまったく同じ状態にショップを復活させることができます。
2. 動作要件・システム環境
本プラグインは、EC-CUBE 4.2系および4.3系の標準環境で動作するように設計されています。
| 項目 | 要件・対応仕様 |
|---|---|
| 対応EC-CUBE | EC-CUBE 4.2.0 〜 4.3.x(4.2系 / 4.3系 両対応) |
| PHPバージョン | PHP 8.1 〜 PHP 8.3(PHP 8.2+ 準拠) |
| 対応データベース |
MySQL 5.7 / 8.0, PostgreSQL 10 〜 16 ※ MySQLで取得したバックアップをPostgreSQL環境へ、あるいはその逆方向へ復元するクロスRDBMS移行も完全サポート |
| 必須PHP拡張モジュール |
zip(ZipArchive必須)、pdo、fileinfo※ エックスサーバー、さくらインターネット、ConoHa、ロリポップ等の主要レンタルサーバーでは標準で有効化されています。 |
| ブラウザ要件 | Google Chrome, Apple Safari, Microsoft Edge, Mozilla Firefox(最新版) |
php-zip(または php8.2-zip)パッケージが未導入のケースがあります。プラグイン画面の「事前システム自動診断」機能にて、zipモジュールが有効化されているかどうか瞬時に確認できます。
3. インストール・初期セットアップ
3-1. オーナーズストア認証キー経由でのインストール(推奨)
- EC-CUBE管理画面にログインし、[オーナーズストア] > [認証キー設定] を開きます。
- EC-CUBE公式サイト(
ec-cube.net)のマイページで取得した「認証キー」を入力して登録します。 - [オーナーズストア] > [プラグイン] > [プラグイン一覧] を開くと、購入済みの「SiteBackupMigrator」が表示されます。
- [インストール] ボタンをクリックし、完了後に [有効化] をクリックします。
3-2. tar.gzファイルの手動アップロードによるインストール
- EC-CUBE公式ストアのマイページから、プラグインファイル(
SiteBackupMigrator-1.0.0.tar.gz)をPCへダウンロードします。 - 管理画面の [オーナーズストア] > [プラグイン] > [プラグイン一覧] を開きます。
- 画面上部の「プラグイン登録」エリアにダウンロードした
tar.gzファイルをドラッグ&ドロップしてアップロードします。 - 一覧に追加された本プラグインの [有効化](トグルスイッチ)をONにします。
有効化が完了すると、管理画面のメニュー [設定] > [システム設定] > [バックアップ&サイト復元] が追加されます。
4. 日常のバックアップ運用
4-1. 1-Click バックアップダウンロード
管理画面の [設定] > [システム設定] > [バックアップ&サイト復元] を開きます。
画面上部の「日常のバックアップ(1-Click ダウンロード)」セクションには、現在のショップに登録されている商品数、会員数、アップロード画像の合計容量が表示されています。
[今すぐ全データバックアップをPCへダウンロード] ボタンをクリックするだけで、ブラウザ経由でZipファイルが即座に生成され、PCへダウンロード保存されます。
- 定期保存: 週に1回、または月に数回、定期的に手元のPCや外部クラウドストレージ(Google Drive, Dropbox等)へ保管してください。
- 作業前保存: EC-CUBE本体のバージョンアップ、プラグインの新規インストール、テンプレートの大幅改修を行う直前には、必ず1-Clickバックアップを取得することを強く推奨します。
4-2. パッケージに含まれるデータ構成
ダウンロードされるZipアーカイブには、ショップを寸分違わず再現するために必要なすべての資産が網羅されています:
| 格納パス / ファイル | 内容・役割 |
|---|---|
db/data/*.json |
外部キー整合性を完全に維持した全テーブルデータ(商品、カテゴリ、会員、受注、税率、配送設定など) |
upload/ |
全商品画像(save_image)および管理画面からアップロードされたファイル一式 |
template/ |
ショップ独自にカスタマイズされたTwigデザインテンプレート(フロント&管理画面) |
plugins/ |
導入されている全プラグインのソースコードおよび設定資産 |
backup_manifest.json |
バックアップ生成日時、EC-CUBEバージョン、PHPバージョン、データ件数、AUTH_MAGIC等のメタ情報 |
緊急_ショップ復旧手順書.html |
オフライン環境でも閲覧できる、新サーバーでのショップ復元ビジュアル手順書 |
4-3. 同梱の緊急復旧手順書HTMLについて
バックアップZip内には、HTMLファイル 『緊急_ショップ復旧手順書.html』 が自動同梱されています。
サーバー全損などによりショップが完全にダウンし、オンラインのWebマニュアルが確認できない状況でも、手元のPCでダブルクリックするだけでブラウザ上に美麗な復旧ガイドがオフライン表示されます。
5. 新サーバーへのサイト復活手順(ディザスタリカバリ)
サーバー障害、改ざん被害、ハードウェア全損、または別会社へのサーバー移転時に、手元のバックアップZipを使ってショップを完全に復活させる実手順です。
ステップ 1: 新サーバーにEC-CUBEをクリーンインストール
新しく契約したレンタルサーバー(エックスサーバー、さくらインターネット、AWS等)の管理パネルや簡単インストール機能を利用して、同一メジャーバージョン(4.2系または4.3系)のEC-CUBEを新規インストールします。
ステップ 2: プラグインの再設置(追加料金0円)
本プラグインは「買い切り(永久ライセンス)」のため、新サーバーで再購入する必要は一切ありません。
以下のいずれかの方法で新サーバーへ即座に再導入できます:
- 認証キー設定(推奨): 新サーバーの管理画面で [オーナーズストア] > [認証キー設定] にご自身の認証キーを登録し、プラグイン一覧から「SiteBackupMigrator」をワンクリックでインストールします。
- 購入済みファイルアップロード: 公式ストアのマイページからダウンロードした
tar.gzファイルを、管理画面の「プラグイン登録」からアップロードしてインストールします。
ステップ 3: Zipアップロードと完全復活の実行
- 新サーバーの管理画面で [設定] > [システム設定] > [バックアップ&サイト復元] を開きます。
- 「緊急サイト復活・データ復元」エリアのアップロード枠へ、保存してあるバックアップZipファイルをドラッグ&ドロップします。
- アップロードが完了すると、システムが自動的に事前診断を行い、元サイトの商品数・会員数・データ容量が表示されます。
- 内容を確認し、大ボタン [ 1-Click ショップ完全復活(全データ復元) ] をクリックします。
- 復元処理が実行され、完了メッセージが表示されたらサイト復活は完了です。商品ページ、会員ログイン、管理画面の受注データがすべて元通り復元されていることをご確認ください。
ECCUBE_AUTH_MAGIC)が安全に引き継がれます。そのため、復元後にお客様が「パスワード再設定」を求められることはなく、以前と同じパスワードですぐにお買い物を再開していただけます。
6. 大容量分割アップロードと事前自動診断
6-1. 2MB チャンク分割アップロードエンジン
多くのレンタルサーバーでは、初期設定の upload_max_filesize や post_max_size が 2MB 〜 20MB 程度に制限されています。
本プラグインは、ブラウザのJavaScriptを活用してファイルを 2MB単位の小さな断片(チャンク) に自動分割し、順次サーバーへ送信して結合する独自エンジンを搭載しています。
- サーバーの
php.iniや.htaccessを手動で書き換える必要がありません。 - 数百MB〜数GBに及ぶ高解像度商品画像入りの大容量バックアップファイルも、エラーなく100%確実にアップロードできます。
- 画面上にはリアルタイムのプログレスバー(%進捗表示)が表示されます。
6-2. プレフライトシステムチェック(事前自動診断)
Zipファイルのアップロード完了後、復元ボタンを押す前に新サーバーの環境を1秒で自動診断します。
| 診断項目 | 診断内容と安全性 |
|---|---|
| ディレクトリ書き込み権限 | /html/upload および /app/template に正常にファイルを展開できる権限があるか検証。 |
| ディスク空き容量 | Zip内のデータをすべて展開するために十分な空きディスク領域が存在するか確認。 |
| 必須PHP拡張モジュール | zip, pdo, fileinfo が有効化されているかをチェック。 |
7. スナップショット管理と世代別ロールバック
「誤って古いバックアップZipを復元してしまった」「意図しないデータを上書きしてしまった」という人的ミスに備え、安全フェイルセーフ機構を標準装備しています。
7-1. 最大5世代の自動スナップショット保存
管理画面から復元処理が開始される直前、システムが「復元直前のショップ状態」を自動的に丸ごとスナップショット(バックアップ)として保存します。
スナップショットは最大5世代まで自動的に保持され、5世代を超えると最も古い世代から自動ローテーション(FIFO)削除されます。
7-2. 選べる1-Clickロールバック手順
管理画面の「安全スナップショット履歴」一覧には、過去の復元履歴が世代順にリスト表示されます。
- 一覧から戻したい日時のスナップショットを確認します(商品数や会員数、ファイルサイズが表示されます)。
- 該当行の [この時点へロールバック(巻き戻し)] ボタンをクリックします。
- 確認ダイアログで「OK」をクリックすると、選択した過去の時点の状態へショップ全体が一瞬で安全に原状復帰します。
8. 異種RDBMS移行とセキュリティ保護
8-1. MySQL ⇄ PostgreSQL 異種データベース間クロス移行
通常のSQLダンプ(mysqldump等)は特定のDB製品に依存した構文で出力されるため、異なるDBエンジン間での移行は構文エラーとなり不可能です。
本プラグインは、Doctrine DBALの抽象化レイヤーを介して全テーブルを**正規化されたJSONチャンクデータ(db/data/*.json)**として抽出・管理しています。
- MySQLで取得したバックアップをPostgreSQL環境へ復元可能
- PostgreSQLで取得したバックアップをMySQL環境へ復元可能
- 復元先のDBエンジンに合わせてパラメータバインディングや型変換(Boolean値や日時型)が自動実行され、シーケンス番号(Auto Increment / Sequence)も自動同期されます。
8-2. 新サーバーのインフラ設定(.env)の絶対保護
復元処理を行う際、新サーバーの DATABASE_URL(データベース接続情報)、APP_ENV、APP_DEBUG などのインフラ固有設定は100%保持されます。
旧サーバーのDB接続情報で新サーバーが上書きされてサイトが「500 Internal Server Error」で起動しなくなるような致命的トラブルを物理的に防止します。
9. よくある質問・トラブルシューティング
Q. バックアップのファイルサイズが数GBある場合でも復元できますか?
はい、問題なく復元できます。ブラウザ側で2MB単位のチャンクに分割してアップロードするため、サーバーのメモリやアップロード容量制限に引っかかることなく巨大なファイルも確実に転送可能です。
Q. 異なるEC-CUBEのメジャーバージョン(例: 4.2から4.3)へ移行できますか?
本プラグインは「ディザスタリカバリ(同一メジャーバージョン環境の完全復元)」を主目的として設計されています。そのため、4.2系で取得したバックアップは4.2系の新環境へ、4.3系で取得したバックアップは4.3系の新環境へ復元していただく仕様となります(4.2.0から4.2.3-p2など、同一メジャーバージョン内のパッチバージョン間は完全対応しています)。
Q. 復元を実行すると、新サーバーに元々あったデータはどうなりますか?
新サーバーにインストールされていた初期データ(サンプル商品やテスト注文など)は、バックアップZip内の本番データによって完全に置き換えられます。なお、復元直前の状態は自動的に「スナップショット」として保存されるため、必要であれば直前の初期状態へワンクリックでロールバックすることも可能です。
Q. サーバーのCron(日次自動実行)でのバックアップには対応していますか?
本バージョン(v1.0.x)はショップオーナー様がPCへ安全にデータを保管する「手動1-Clickダウンロード」および「緊急サイト復活」に特化しています。深夜のCLI自動バックアップやクラウドS3自動転送機能については、今後のマイナーアップデートにて順次拡張予定です。
Q. 新サーバーにEC-CUBEを再インストールした際、プラグインは再購入が必要ですか?
いいえ、再購入の必要は一切ありません。本プラグインは買い切り(永久ライセンス)です。新サーバーの管理画面でご自身の「認証キー」を入力するだけで、いつでも追加費用なしで何度でもインストールしてご利用いただけます。