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
が移行後のサーバに合っていないことが考えられます。
関連記事
- PostgreSQLでERROR: duplicate key value violates unique constraint "hoge_pkey" DETAIL: Key (id)=(10) already exists.と出る場合
- PostgreSQLで自動採番をするシーケンス(sequence)とは【AUTO INCREMENT】
- EC-CUBE2系で商品を大量にカートに入れると注文情報が抜けたりカートが消えたりする
- EC-CUBEのダウンロードページ(過去のバージョン)
- 新規ページを追加するとSC_Utils_Ex::sfChangeCheckBox()のエラーが出るときの対処法
- PostgreSQLからMySQL、MySQLからPostgreSQLの変更
- EC-CUBEのバックアップ機能とリストア
- EC-CUBEでMySQLデータベースのデータ取得で文字化けするときの対処法
- ページごとのスタイルシート、JavaScriptを指定する方法
- テンプレートの編集
- カテゴリ名など文字列を丸めると文字化けする EC-CUBEのバグ
- 基本的な特徴
- DB設計を見直してEC-CUBEを高速化する
- 郵便番号データの登録/更新
- インストール 初期設定
- EC-CUBE
- MySQL MariaDB
- PostgreSQL
- 別テーブルでSELECT JOINしながらUPDATEする方法(SELECTした結果でUPDATEする)
- phpMyAdminで『information_schema』などを非表示にする方法
- レコード挿入時の #1364 - Field doesn't have a default value
- utf8_general_ci と utf8_unicode_ci の違い
- CakePHPでカラムを比較してSELECTする方法
- MySQL Query Browser 本家GUIツール
- 複数のデータベースを切り替える方法(別データベースを使用する)
- MySQLで文字化けを防ぐ方法
- Zend Frameworkのデータベース接続
- MySQLのソケットエラー
- MySQLの処理を停止させる方法
- MySQLでランダムな数字を得る方法
- MySQLやMariaDBは標準ではログローテートされない
- 日付と時刻型(データ型)のまとめ
スポンサーリンク