EC-CUBEで構築されたサイトのサーバー移行作業手順

2010/06/14 16:58

オープンソースのECサイト構築フレームワークとして人気のEC-CUBE(php)を利用した、ECサイト開発、運用においてデータ移行、サーバー移行手順を以下に示します。
※ LAMP環境からLAMP環境への移行とします。

1. 移行元環境の/eccubeを一式ダウンロード
特に注意点はありません。

2. /eccube/data/install.phpを編集
パスやDB接続情報を新しい環境へ変更します。

3. /eccube/html/user_data以下のphpファイル修正
三行目がrequire_once("移行元環境のルートパス/eccube/html/require.php");等となっている為、全ファイルの「移行元環境のルートパス」を「移行先環境のルートパス」へ置換します。

4. 移行先サーバーへ/eccubeをアップロード
phpファイル、フォルダのパーミッションに気をつけて下さい。

5. 移行元サーバーからDB内容をエクスポート(※1)
phpMyAdmin等から行います。
手順としては、以下の順にするとIOの失敗が少ないです。
5-1・テーブルmtb_zip以外をまとめてSQLファイルでエクスポート
5-2・mtb_zipをSQLファイルでエクスポート

6. 移行先サーバーのDB作成
「2. /eccube/data/install.phpを編集」で設定した通りの名でDBを作成する。

7. 移行先サーバーへDB内容をインポート(※1)
phpMyAdmin等から行います。
手順としては、以下の順にするとIOの失敗が少ないです。
「6. 移行先サーバーのDB作成」で作成したDBに対し、
7-1・mtb_zip以外のSQLファイルをインポート
7-2・mtb_zipを3ファイル程度に分割する(SQLの知識必須)
ファイルが大きいと、こけて壊れる可能性ある為。編集時は文字コードに注意する。
7-3・mtb_zipをそれぞれインポート

以上です。
管理画面は/eccube/html/admin/から移行元環境と同じid,passwordで入れます。
別のやり方であれ、注意すべき点は
・「install.phpを編集」
・「user_data以下のphpファイルのrequire文修正」(※管理画面から再登録という手もあります)
・「DBのエクスポートとインポート(文字コード、テーブルの大きさ)」
でしょう。
方法は他にもいくつかあると思いますが、比較的楽な方法ではないでしょうか。

※1 文字コードは、大抵の場合utf-8で処理すれば問題はないはずです。移行元と移行先のphpMyAdminで確認して下さい。

EC-CUBEのユーザ名、パスワードを忘れた場合の対処

2010/04/29 19:13

phpでECサイトを構築する際によく使われているEC-CUBEで、ユーザ名、パスワードを忘れた場合の再設定方法を説明致します。

※ データベースの値をphpMyAdmin等外部からいじれる事が前提
※ 簡単なphpプログラムが書ける、実行環境がある前提

まずはデータベースを開きましょう。接続文字列、認証情報は/eccube/data/install.phpに書いてあります。

define ('DB_USER', '~~~~~~');
define ('DB_PASSWORD', '~~~~~~');
define ('DB_SERVER', '~~~~~~');
define ('DB_NAME', '~~~~~~');

ユーザ情報はdtb_memberテーブルに入っています。ユーザ名はlogin_id、パスワードはpasswordのカラムです。

ユーザ名はそのままで使用すればOK。

ん、パスワードは見慣れない数字とアルファベットの羅列ですね。これは暗号化という奴です。あなたが指定したパスワードは暗号化されてDBに入っているということです。

※ これは常識です。もしもあなたがユーザ認証を使用するタイプのアプリケーションを何かしら利用した際にパスワードが平文のままDBに入っていたら、即そんなものを使うのはやめましょう。開発者が稚拙か、単なる面倒くさがりや、もしくは悪用しようと企んでいる人です。

さて、話がそれましたが、上記から、パスワードはそのままでは使えませんのでDBのデータを更新しましょう。

更新内容ですが、まずはあなたが新しくパスワードに選ぶ文字列をsha1で暗号化する必要があります。

eccube/data/mtb_constants_init.phpを開き、

/** 認証用 magic */
define('AUTH_MAGIC', "~~~~~~~~~~~(以降※1)");

となっている箇所を見つけてください。※1は数字とアルファベットの羅列。

phpで以下を実行。

echo sha1("新規アルファベット用文字列" . ":" . "※1");

出力された数字とアルファベットの羅列をdtb_member.passwordにセット。

以上で再びログイン!!