先日、EC-CUBEで制作したサイトを別サーバーに移行し、ドメイン名も変更したので、その時に行った作業を備忘録として残しておきたいと思います。
EC-CUBEのサーバー・ドメインを移行する手順
今回サーバーとドメインの移行を実施した環境は、EC-CUBE2.13.3です。
行った作業としては、以下の通り。
- ファイルのダウンロード
- データベースのエクスポート
- /data/config/config.phpの編集
- .htaccessの編集
- define.phpの編集(dataディレクトリのパスが変わる場合)
- /data/Smarty/templates_c内のキャッシュファイル削除
- ファイルのアップロード
- データベースの作成とインポート
- データベース内のURL置換
- dtb_paymentのmodule_pathを変更(フルパスで指定されている)
今回の作業手順は、サーバーとドメインの両方を移行する方法です。ドメインの移管がなければ、「データベース内のURL置換」は必要ありません。
ステップ1. ファイルのダウンロード
移行元のFTPサーバーからすべてのファイルをダウンロードします。
ステップ2. データベースのエクスポート
移管元のデータベースをエクスポートします。
ステップ3. /data/config/config.phpの編集
/data/config/config.phpには、データベースへの接続情報やサイトURLの情報などが記述されています。これを移行先の情報に書き換えましょう。
主に書き換えが必要なのは、以下の部分です。
define('HTTP_URL', 'http://example.com/');
define('HTTPS_URL', 'https://example.com/');
define('DB_USER', 'dbusername');
define('DB_PASSWORD', 'dbpassword');
define('DB_SERVER', 'dbhost');
define('DB_NAME', 'dbname');
define('ADMIN_DIR', 'admin/');
ステップ4. .htaccessの編集
.htaccess内にサーバーのパスやドメイン名に関する記述があったら、移行先の情報に書き換えます。
ステップ5. define.phpの編集(dataディレクトリのパスが変わる場合)
ルートディレクトリにあるdefine.phpには、dataディレクトリのパスを記述している箇所があります。dataディレクトリの設置場所が変わる場合は、パスを書き換えます。
define('HTML2DATA_DIR', '../data/');
ステップ6. /data/Smarty/templates_c内のキャッシュファイル削除
/data/Smarty/templates_cディレクトリ内には、テンプレートのキャッシュファイルが入っています。キャッシュファイルは移行時に邪魔をしてサイトの表示に不具合が発生することもありますので、予め削除しておきましょう。
※もし移行先のサイトが正常に表示されない時は、「/data/cache」内のキャッシュファイルも削除してみましょう。テンプレートの設定などはリセットされますが、サイトの表示はうまくいくと思います。
ステップ7. ファイルのアップロード
いよいよ移行先での作業です。ダウンロードしたファイルを新しいサーバーにアップロードしましょう。
ステップ8. データベースの作成とインポート
移行先のサーバーにデータベースを作成して、移行元からダウンロードしたデータベースをインポートします。
ステップ9. データベース内のURL置換
データベース内に移行前のURLが入っていますので、すべて移行先のURLに置換します。
データベースの置換は、DATABASE SEARCH AND REPLACE SCRIPTを使うと楽です。
ステップ10. dtb_paymentのmodule_pathを変更
クレジットカード決済などを導入しているサイトでは、使用している決済モジュールのパスが、dtb_paymentテーブルのmodule_path列に記述されています。
フルパスで指定されていますので、新しいサーバーに合わせてパスを変更しましょう。これはデータベースを直接編集します。
あとがき
同じ要領でサーバー⇔ローカル間の移行も可能です。参考になれば幸いです。