EC-CUBEの引っ越しマニュアル

WordpressもMovableTypeも比較的引っ越しは楽なんですが、なんかEC-CUBEは面倒くさいです。というのも決済モジュール関連も含むので完璧に引っ越しする方法となるとかなり個別になるというか一定したマニュアルがないというか。でも仕方ないので始めます。

引っ越し想定の例

項目 引越元 引越先
Domain from.example.com to.example.com
Path /home/from/www /home/to/www
IP xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz

mysqldump & restore

まずはデータベースをダンプします。ダンプファイルをエディタなどで開いてfrom.example.comをto.example.comにすべて置換します。このとき、www.example.com(wwwあり)などをexample.net(wwwなし)みたいなものに置換するとwwwが残ったままになったりするのでちゃんと置換しましょう。
それからフルパスのDocumentRootを/home/from/wwwを/home/to/wwwに置換します。(熟練職人さんはsedとかでサーバー内でバーっとやってOKです。ここっちの方が早いです。)これでデータベースの準備は整いました。
このファイルを移行先のサーバーにアップしてリストアします。

dataディレクトリとhtmlディレクトリを移行

dataとhtmlを丸々ダウンロードして移行先にアップロードします。htmlがDocumentRootになるので、場合によってはpublic_htmlだったりwwwだったりするかもしれませんが環境に合わせてやってください。(上記の例ではhtmlがwwwとして扱っています)
上記の移行例では、
/home/from/www
/home/from/data

/home/to/www
/home/to/data

data,html(www)共に全文検索かけてみました。ちゃんとしたプログラミングをしていたらdata/config/config.php以外にドメインやパスの記述はありません。もしベタで書いている人がいるかもしれないので、ダンプファイルと同様に全文置換しましょう。(find & grepで置換できる人はアップロードしてからサーバー内でやってしまいましょう。)
これらを移行先にアップロードします。

データベースの設定

移行先でDatabaseの接続設定を行います。data/config/config.phpを開いて先ほどリストアしたDatabaseの接続情報に書き換えます。user,password,host,dbname以外はそのままにした方がトラブルが最小限になって楽です。

パーミッションの設定

EC-CUBEのパーミッションが厄介です。777じゃないと作動しないところがあったりなかったり、ディレクトリを全部777にしてファイルを全部666にしたら動くとか動かないとかで、厄介です。画像のアップロードができないだのプラグインやモジュールが入るとか入らないとかで、もうなんて言うかシステムの体裁が整っているんだかって感じです。が、最低限なところで設定すべきところを紹介します。
data [777]
www [777]
data/cache [777]
data/cache/*.serial [666]
data/class [777]
data/logs [777]
data/logs/*.log [666]
data/Smarty [777]
data/Smarty/templates_c [777]
data/Smarty/templates_c/admin [777]
data/Smarty/templates_c/default [777]
data/upload [777]
data/upload/csv [777]
この設定が正しいのか正しくないのかわかりませんが、だいたいこのようなかたちで動きます。

トラブルシューティング

殆ど失敗することはないんですが、アクセスして何もページに表示されないみたいなことになったら、まずはdata/logs/error.logを見ましょう。それからApacheのエラーログも見ましょう。たいていそこらあたりを見るだけでだいたいわかります。