お知らせ内容をここに入力できます。 詳しくはこちら

Xserver内でのサーバー移行をした記録(備忘録)

  • URLをコピーしました!

Xserver内でサーバーの移動をした。

もう同じことはしないだろうけど、この記事はその記録。

目次

Xserver内でサーバー移動した理由

Xserverのキャンペーンが理由。

特定期間内に新規申込みした人は料金が半額になるというので、既にXserver内でサーバー契約をしていたけど、新たに申し込んで半額の恩恵を受けようという目論見。

一応事前に調べた段階では、サーバー移行はそれほど難しい作業でないということだった。

しかしながら、これは新サーバーを契約してから気付いたのだが、、、Xserver”内”のサーバー移行はちょっと話が違った。

別会社からXserverに移行したり、あるいはXserverから別会社に移行するようなサーバー移行は、旧サーバーのドメイン契約を残したまま、新サーバーでもドメイン契約をできるのだが、

Xserverはその仕様上、旧サーバーのドメイン契約をいったん解除してからでないと、新サーバーでドメイン契約ができなかった。

つまり、旧サーバーでexample.comというドメインを登録し、サイト運営をしている人は、いったん旧サーバーでexample.comのドメイン登録を解除してからでないと、新サーバーにexample.comを登録できない、という仕様。

これのお陰で、旧サーバーから新サーバーに移行する際、一時的にexample.comにアクセスできなくなる、ということが起きる。

たぶん企業とかだと大変なんだと思う。

あと、上記のような問題とは別に、Xserver内のサーバー移行について解説しているブログが全く見つからないので、暗中模索状態で作業を進めないといけないのが大変だった。

ということで、以下はやったこと。

実際の手順

以下の手順は私が調べながら行った手順であり、正しい方法であるとか、安全な方法であるとか、そういうのには一切責任が持てない。

もし真似るにしても完全に自己責任である。

質問などにも答えられない(答える気がない)。

0:色んなデータを保存しておく

旧サーバーから以下の情報を保存。

  • MySQL(phpmyadminからエクスポート)
  • public_html
  • メルマガソフト(Cyfons)などを使っている場合はそのバックアップ

1:旧サーバーのドメインを削除する

これをやると、一切の情報にアクセスできなくなる。

2:新サーバーにドメインを登録する

前述のとおり、Xserverはその仕様上、旧サーバーのドメイン情報を削除しないと、新サーバーに登録できない。

3:新サーバーで色々設定する

  • メールアカウント設定
  • MySQLデータベース設定(色々メモしておくこと)
  • SSL設定(有効化)

4:保存しておいたMySQLをインポートする

インポートする前に保存しておいたMySQLファイルをチェックして、以下の記述があれば削除しておく。

(私の場合は旧サーバーのデータベース名が記述されていて、エラー原因になってた)。

「CREATE DATABASE IF NOT EXISTS MySQLデータベース名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE MySQLユーザー名;」

で、インポートする。

インポートする際は、左側の一覧表示から、MySQLを設置したいドメインを選ぶこと(選ばないとエラーが表示される)

色んな項目を選べるけど、全部そのままでOKだった。

5:wp_config.phpを編集する

保存しておいたpublic_htmlフォルダ内にある、wp_config.phpを開いて、以下の情報を編集する。

新しいMySQLデータベースの情報に書き換える

define(‘DB_NAME’, ‘新しいDB名’);
define(‘DB_USER’, ‘新しいDBユーザー名’);
define(‘DB_PASSWORD’, ‘新しいパスワード’);
define(‘DB_HOST’, ‘localhost’); // 通常はそのまま

6:public_htmlをアップロードする

FTPソフトで新サーバーのドメインをチェックすると、既にpublic_htmlフォルダがある。

まずそのフォルダ内の情報をすべて削除する。

次に、保存しておいたpublic_htmlの中身をアップロードする。

ここまでやったらひと段落。

たぶんドメイン設定やSSL設定の反映に時間がかかるから、やれることがなくなる。

エラーが起きていなければ、反映が終了した時点で、Webページが表示されるようになっているはず。

表示されなかったら、ひたすら原因追及とその解明。

メルマガ編

私はCyfonsというメルマガ配信ソフトを使用している。

Cyfonsはサーバー設置型なので、今回のサーバー移行の影響をもろに受けた。

サーバー移行に伴い、以下のような期待を持っていたが、どれも叶わなかったので前提として書いておく。

前提

  • 会員情報や過去に送ったメール情報などをFTPソフトとかから移行できないかなと思っていたけど、自分にはできなかった。
  • 会員情報やステップメールは既存のバックアップ機能を使って、号外メールは1つ1つ手作業でメモ帳にコピーしてバックアップを取った。
  • URL短縮で作った過去の履歴は全部とんだ(涙)
  • たぶんやりようによっては、上手いことデータ移行させられるんじゃないかと思ってる

具体的にやったこと

サーバー移行前に「会員情報」や「過去メール情報」のバックアップを取っておく。

新サーバーにドメイン設置が完了したら、そこにCyfonsを導入していく(購入時と同じ手順)。

作業の流れはこれだけ。

管理画面からログインできない問題

購入時と同じ以下の手順を踏んだところ、管理画面からログインできない問題が発生。

  • MySQLのデータベース作成
  • public_htmlにcin.phpをアップロード
  • ドメイン名/cin.phpを表示させ諸々入力
  • 管理画面でログイン情報入力

エラー表示:
Warning: session_start(): open(/home/旧サーバー名/ドメイン名/xserver_php/session/sess_ef2295ed9ab2bcca9502a834675ce4b3, O_RDWR) failed: No such file or directory (2) in /home/新サーバー名/ドメイン名/public_html/member/common/super_session.php on line 55 Warning: session_start(): Failed to read session data: files (path: /home/旧サーバー名/ドメイン名/xserver_php/session) in /home/新サーバー名/ドメイン名/public_html/member/common/super_session.php on line 55 」

ざっくりとした意味:

ログイン(セッション)しようとしたんだけど、あなたが指定した場所(旧サーバー)は現在のサーバー(新サーバー)で見つけられませんでした

つまり、旧サーバーなんて指定していないんだけど、なぜか旧サーバー内の場所を、新サーバーから探せという無茶指示をしていることになっている。

解決した方法:

  • Xserverのファイルマネージャ―を開く
  • /home/新サーバー/ドメイン名/xserver_php/session/ を探す
  • あれば権限を700に変更(元々711だった)、なければフォルダを作る
  • public_html/member/ の中に、「.user.ini」という名前で以下の内容のファイルを作る。
    「session.save_path = “/home/新サーバー/ドメイン名/xserver_php/session”」

ここまでやったら、無事にログインすることができた。

以上でXserver内のサーバー移行は完了。

この記事は上記作業から数週間してから書いているが、今のところ問題は出ていない(ように思われる)。

この記事が誰かの助けになれば幸い。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次