今回は「既に運用中のEC-CUBE4サイトを改修するため、本番と全く同じサイトを同サーバー上に複製(コピー)する」というイメージで進めてみます。

はじめに

構成

今回はこのような構成で、サブディレクトリに複製を作っていきたいと思います。

[A・本番環境]
https://example.com/prod/
※公開URLは https://example.com とする。
(参考)【EC-CUBE4】サブディレクトリにインストールしたEC-CUBEをドメイン直下に表示させる
[B・コピー先]
https://example.com/dev/

ドメイン変更の操作は不要!
EC-CUBE4では、ドメインの情報はDB内で保有せず、$_SERVER で取得しているよう。そのため、WordPressのようにDBの書き換えは必要ありません。素晴らしい。

★varディレクトリ内のフォルダ(cache・log・sessions)は削除!
varディレクトリには、本番環境の「キャッシュ・ログ・セッションファイル」などが入っています。これらを残しておくとコピー先で不具合が起きる可能性があるので事前に削除しておきます。

事前準備 (本番環境の完全バックアップ)

念のため、本番環境の「ファイル一式」「DB(sql)」を、全てバックアップしておきます。
量が多いのでzipで圧縮してからSSHでダウンロードするのが良いですね。
※過去、圧縮せずFTPでダウンロードしようとしたら死ぬほど時間がかかりました。

// 例) Xサーバーからローカルのデスクトップにprod.zipをダウンロードする
scp -i ~/.ssh/(公開鍵) -r -P 10022 (サーバーID)@(サーバー番号).xserver.jp:/home/(ファイルまでのパス)/prod.zip /Users/(デスクトップまでのパス)/Desktop

作業工程

①空のデータベースを用意

お使いのサーバー上で作成しておきます。

②本番ディレクトリ /prod/ をまるっと複製。

//コマンドで実行すると楽です
cp -r prod dev

サブディレクトリ形式であれば、この1工程でコピー完成。新しいディレクトリのまま管理画面にも入れます。

③コピー先の .env の編集

//接続先のデータベースを変更
DATABASE_URL=mysql://(ユーザー名):(パスワード)@(ホスト名)/(DB名)

DATABASE_URL= の データベース接続先を変更します。
※ちなみに、この状態(DB内が空のまま)でサイトにアクセスすると「システムエラーが発生しました。」と表示されます。

④データベースのインポート

コピー元 /prod/ で使用していたデータベースを、コピー先 /dev/ で使用するデータベースにインポートします。
これで、コピーが完了しました。だいぶお手軽ですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です