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
が移行後のサーバに合っていないことが考えられます。
スポンサーリンク
関連記事
- 新規ページを追加するとSC_Utils_Ex::sfChangeCheckBox()のエラーが出るときの対処法
- PostgreSQLからMySQL、MySQLからPostgreSQLの変更
- EC-CUBEのバックアップ機能とリストア
- EC-CUBEでMySQLデータベースのデータ取得で文字化けするときの対処法
- ページごとのスタイルシート、JavaScriptを指定する方法
- テンプレートの編集
- カテゴリ名など文字列を丸めると文字化けする EC-CUBEのバグ
- 基本的な特徴
- DB設計を見直してEC-CUBEを高速化する
- 郵便番号データの登録/更新
- インストール 初期設定
- EC-CUBE
- MySQL
- PostgreSQL
- Zend_DBのSELECTメソッドのまとめ
- MySQLでランダムな数字を得る方法
- 複数のデータベースを切り替える方法
- Beep音を無効にする
- OpenPNE3のデータベースの設定
- MySQLの処理を停止させる方法
- WordPressのインストール
- SQL文で特定の曜日のみ抽出するには
- MySQL Query Browser 本家GUIツール
- LIMITで件数制限をしつつ、全件数を取得する方法 SQL_CALC_FOUND_ROWS FOUND_ROWS()
- MySQLのソケットエラー
- Zend_DBの基本
- MySQL関数のまとめ
- MySQLサーバに接続できるかどうかを確認する
- 別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)
- PostgreSQLのインストール
- 日付と時刻型(データ型)のまとめ
- MySQLのインストール
スポンサーリンク






