EC-CUBE4系でのサーバー・ドメインの移行手順をご紹介いたします。
以前、「EC-CUBE2系でサーバー・ドメインを移行する手順」という投稿をしましたが、2系とはだいぶ変わったので4系での移行手順を解説したいと思います。
EC-CUBE4系でのサーバー・ドメイン移行手順
手順としては、以下の通りです。
- 旧サーバーからファイルとデータベースをダウンロード
- 新サーバーへのファイルのアップロード
- 新サーバーへのデータベースのインポート
- .envもしくは.htaccessの書き換え
- EC-CUBEのメンバーマイページで登録サイトのURLを変更(ドメイン移管した場合)
4系ではドメインに関する情報が、ファイルやデータベース内にほとんどないので2系に比べると移行がとても楽です。
ステップ1: 旧サーバーからファイルとデータベースをダウンロード
まずは旧サーバーからファイルとデータベースを丸っとダウンロードしておきましょう。
ただし、varディレクトリ配下は除外します。varディレクトリ配下にはキャッシュファイルなどが入っているので、そのまま持ってくるとサイトが表示されなくなる場合があります。
ステップ2: 新サーバーへのファイルのアップロード
ファイルのダウンロードが完了したら、新サーバーへファイルをアップロードします。
ステップ3: 新サーバーへのデータベースのインポート
データベースも新サーバー環境へインポートしましょう。
おそらくないとは思いますが、データベース内に移行前のドメイン名が入っていたらドメイン名も置換しましょう(ドメイン移管する場合のみ)。Database Search and Replace Script in PHPを使うと見つけやすいかと思います。
ステップ4: .envもしくは.htaccessの書き換え(.env編)
EC-CUBEのインストールディレクトリに.envというファイルがあり、.envの中にデータベースへの接続情報やEC-CUBEのパスなどが記録されています。
.envを使って環境変数を設定している場合は、.envを書き換えます。.htaccessを使って環境変数を設定している場合は、後述している.htaccess編に移動してください。
まず以下のような記述があるので、これを新サーバーのデータベースの情報に書き換えます。
DATABASE_URL=mysql://username:password@host/database
DATABASE_SERVER_VERSION=5.7.27
続いて、メール送信の設定です。大抵のレンタルサーバーでは以下の通りでメール送信できるようになるかと思いますが、変更が必要な場合は利用するSMTPサーバーに合わせて変更します。
MAILER_URL=sendmail://localhost
最後にEC-CUBEのインストールディレクトリのパスを指定します。
ECCUBE_COOKIE_PATH=/
ディレクトリの階層が変わらない場合は書き換え不要です。もし”shop”ディレクトリにインストールしたとしたら、「ECCUBE_COOKIE_PATH=/shop」のように変更します。
ステップ4: .envもしくは.htaccessの書き換え(.htaccess編)
.envではなく.htaccessでデータベースへの接続情報などの環境変数を設定していた場合は、.htaccessの情報を新サーバーに合わせて書き換えます。
以下のような記述があるかと思いますので、それぞれ編集しましょう。
SetEnv DATABASE_URL mysql://username:password@host/database
SetEnv DATABASE_SERVER_VERSION 5.7.27
SetEnv MAILER_URL sendmail://localhost
SetEnv ECCUBE_COOKIE_PATH /
ステップ5: EC-CUBEのメンバーマイページで登録サイトのURLを変更(ドメイン移管した場合)
ドメインが変わった場合は、EC-CUBEのメンバーマイページにアクセスして、登録サイトのサイトURLを新ドメインに変更しておきましょう。
あとがき
EC-CUBE2系ではあれこれファイルの書き換えが必要でしたが、それに比べると4系はだいぶ楽ですね。
テスト環境から本番環境へ移行する場合など、EC-CUBEの制作案件に関わっていると、サーバー/ドメインの移行は実施する機会が多いです。EC-CUBEの制作を行う場合は、必ず抑えておきたいところですね。