EC-CUBEのサーバ移行の方法

EC-CUBEで作成されたサイトを別のサーバに移す場合、ファイルをサーバにアップロードする、データベースをサーバに投入するなどの手順を行います。

移行後に管理画面のログインページが出ずに『システムエラーが発生しました。』と出る場合
移行後に『IDまたはパスワードが正しくありません。』と出る場合
移行後に『システムエラーが発生しました。』と出る場合

ファイルの移行

SSHが使用できる場合

移行元サーバと移行先サーバがともにSSHでログインできる場合は、rsyncを使ってファイルを同期するか、tarなどを使用してパーミッション情報を保持したままファイルをコピーします。

SSHが使用できない場合

移行元サーバからファイルを全てダウンロードして、移行先サーバにアップロードします。
これだけだとパーミッション(書き込み権限)の設定はされていないため、システムエラーが発生します。

/html/install以下のファイルが残っていれば、インストールフォルダにブラウザでアクセスして( http://www.example.com/install/ )、パーミッションの設定をしなおします。
パーミッションエラーがなくなるまで、エラーの出ているファイル・フォルダのパーミッションを変更します。

/html/install以下のファイルがなければ、同バージョンのファイルを入手して使用します。

データベースの移行

移行元のデータベースサーバからバックアップデータを作成して、移行先のデータベースサーバにリストアします。

郵便番号データが入っている場合、ダンプファイルが大きくなるため、スキーマのみをダンプして、移行先で郵便番号DBの更新を行ったほうがいいです。
[参考記事] 郵便番号データの登録/更新

MySQLの場合、コマンドでは次のようにします。

バックアップ

mysqldump -u 【ユーザ名】 -p 【データベース名】 > バックアップファイル名

リストア

mysql -u 【ユーザ名】 -p -D 【データベース名】 < バックアップファイル名

[参考記事] バックアップ機能とリストア
[参考記事] PostgreSQLからMySQL、MySQLからPostgreSQLの変更
[参考記事] MySQLデータベースのデータ取得で文字化けするときの対処法

設定ファイルの変更

EC-CUBEの設定ファイルは次のファイルになります。
/data/config/config.php

このファイルを移行先のサーバに合わせて変更します。

このときHTTP_URLとHTTPS_URLの値には、ドメインに依存しないよう次のようにしておくとよいです。

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

移行後に管理画面のログインページが出ずに『システムエラーが発生しました。』と出る場合

システムエラーが発生しました。
大変お手数ですが、サイト管理者までご連絡ください。



『ログインページへ戻る』リンクを開いても、ログインページが出ない場合は
/data/config/config.php

DB_TYPE、DB_USER、DB_PASSWORD、DB_SERVER、DB_NAME、DB_PORT
が移行後のサーバに合っていないことが考えられます。

これが間違っているとデータベースサーバへアクセスできない状態になっています。

移行後に『IDまたはパスワードが正しくありません。』と出る場合

IDまたはパスワードが正しくありません。
もう一度ご確認のうえ、再度入力してください。



ID、パスワードが合っているにもかかわらず、認証ができずに管理画面にログインできない場合には、
/data/config/config.php

AUTH_MAGIC または PASSWORD_HASH_ALGOS
が移行前と移行後で変わってしまっていることが考えられます。

パスワードのハッシュ化は
/data/class/util/SC_Utils.php
sfGetHashString()
で行われます。

function sfGetHashString($str, $salt) {
    $res = '';
    if ($salt == '') {
        $salt = AUTH_MAGIC;
    }
    if ( AUTH_TYPE == 'PLAIN') {
        $res = $str;
    } else {
        $res = hash_hmac(PASSWORD_HASH_ALGOS, $str . ":" . AUTH_MAGIC, $salt);
    }
    return $res;
}

パスワードはPASSWORD_HASH_ALGOSをハッシュ化アルゴリズムとし、AUTH_MAGICを『ハッシュ文字列を生成するために使用する 共有の秘密鍵』として使用しているため、この値が変わるとパスワードの認証に失敗します。

移行後に『システムエラーが発生しました。』と出る場合

システムエラーが発生しました。
大変お手数ですが、サイト管理者までご連絡ください。



ID、パスワードが合っているにもかかわらず、システムエラーで管理画面にログインできない場合には、
/data/config/config.php

HTTP_URL または HTTPS_URL
が移行後のサーバに合っていないことが考えられます。

関連記事

スポンサーリンク

EclipseのビューをカスタマイズしてファイルエクスプローラやLogCatを表示する

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る