たちまちメモる

開発中に気になったことをメモしてます。

【EC-CUBE】環境を複製したときのメモ

f:id:hamkiti:20150210190505p:plain
このあいだ自分でLinuxサーバ上にあるEC-CUBE環境をローカルに複製したときの手順ですが、EC-CUBE環境を引っ越しさせる時にも応用できると思います。




 

諸々の環境

今回 複製するEC-CUBE環境

EC-CUBE:2.13.3
DB:PostgreSQL 9.3.5

複製元(Linux環境)

OS:Linux CentOS 6.6 / 64bit
PHP:5.4.37
DB種別:PostgreSQL 9.3.5
DBスキーマ:before_eccube_db
DBロール:before_db_user

トップページ※URLは架空のものです。
http://before.eccube.example.com/

複製先(Windows環境)

OS:Windows7 / 64bit
PHP:5.3.27
DB種別:PostgreSQL 9.3.5
DBスキーマ:after_eccube_db
DBロール:after_db_user

トップページ※URLは架空のものです。
http://after.eccube.localhost/

前提条件

両方の環境にはあらかじめphpPgAdminでDB操作ができるよう
設定されているものとします。




 

複製元からEC-CUBE本体ディレクトリとDBダンプファイルをダウンロード

f:id:hamkiti:20150210184023p:plain

取り出し方法

EC-CUBE本体ディレクトリ

FTPソフトを使ってEC-CUBEディレクトリを丸ごと取り出しました。

DBダンプファイル

phpPgAdminのエクスポート機能で取り出しました。

構造とデータをSQLファイルで吐き出させてます。
f:id:hamkiti:20150210183816p:plain


EC-CUBE本体ディレクトリの移行

config.phpの書き換え

複製元と複製先の環境差を見て定数を書き換えます。
今回の例だとHTTP_URLやDB系統の変数を書き換えました。
f:id:hamkiti:20150210184135p:plain
ただしAUTH_MAGICの部分だけは書き換えないように注意してください。
ここを書き換えてしまうと移行元から引き継いだアカウントはログインできなくなります。

キャッシュファイルの消去

/data/cache 配下にある *.serial ファイルはごっそり消しておきます。
(移行元のDBデータの一部が残っているため)

上記の作業が済んだら

FTPソフトで移行先サーバ環境にEC-CUBE本体をアップ。


 

DBデータの移行

DBダンプファイルの書き換え

URLパス置換
検索://before.eccube.example.com
 ↓
置換://after.eccube.localhost


今回は同バージョンPostgreSQL同士でロール名が違ってましたので
その書き換えも行いました。

ロール名置換
検索:before_db_user
 ↓
置換:after_db_user

リストア作業

phpPgAdminにログインして移行先のスキーマを選択し、DBダンプファイルのSQLを実行するとデータが移行できます。
※ダンプデータがかなり肥大化している場合は、phpのアップロード制限に引っかかる場合もあるので注意してください。
f:id:hamkiti:20150210184809p:plain

 

 
これで一応、移行作業完了です。
\(^o^)/


蛇足

config.phpの書き換えのドメイン名の部分は変数化しておいたほうがいいと思った。
(後の祭りだけど。。。)

<?phpdefine('HTTP_URL', 'http://'.$_SERVER['HTTP_HOST'].'/');
define('HTTPS_URL', 'http://'.$_SERVER['HTTP_HOST'].'/');
…