同じドメインで別サーバーにWordPressを移転:メモ

悩み
悩み

長く使っていたさくらインターネットさんから、XSERVERにこのブログを移しました。

理由は概ね実験のためですが、移行自体も試したいことがあったので実行。

事前のチェックでは問題がなったのですが、いざDNSを向けて見ると表示がおかしく、正常に表示させるのに苦労しましたので、自分用メモとして。

前提

以下は前提です。

  • ドメインはお名前.comで管理
  • さくらインターネットからXSERBERへ移転
  • ドメインは変わらず
  • WPのインストール先は専用ディレクトリからルートに変更
  • テーブルのプレフィックス(接頭語)は新しく書き換える

作業の流れ

  1. さくらインターネットからphpMyadminでsqlファイルをエクスポート
    (以前使っていたプラグインがテーブルを追加していて、それが不要な場合はそこを除外しても問題無し)
  2. エクスポートしたファイル内にある画像などのパスをテキストエディタで置換
    (専用ディレクトリからルートに移動するため)
  3. XSERVERでドメインを追加し、WPをインストール
    (後でテーブルのプレフィックスを書き換えれば良いので、自動インストールでデータベースまで作ってしまっても問題無し)
  4. 新しいWPにテーマフォルダなど必要なものを入れる
  5. XSERVERのphpMyadminにさくらインターネットからエクスポートしたファイルをインポート
    (新しく設定したDBのプレフィックスとインポートする側の名称が同じ場合は上書きされるので、事前に書き換えるなど対処する必要あり)
  6. phpMyadminで必要な箇所を書換える
  7. 新しいWPのwp-config.phpにある$table_prefixをインポートしたテーブルのプレフィックスに書き換える
  8. お名前.comでDNS切替え
  9. チェックして問題なければ完了

列記するとやはり簡単に見えますね。

テキストエディタを使ったり、phpMyadminを使ったりしていますが、書き換える箇所自体はどちらでも変更可能ですから、どちらか一つを使い一度で処理をするのもよいと思います。

ではなぜ分けているかと言えば、一番楽な一括置換で失敗した部分があったり、1つ1つ見るには数が多い変更箇所があったりしたため、やりやすい場所でやりやすい作業を行いたかったためです。

sqlの必要な箇所を書換える

WordPressの別サーバへの移行手順

上記のサイトの記事が一番参考になりました。
読解力がないせいか、他のサイトの情報ではsqlを何も書き換えずに別サーバーにアップしているだけというように見え…。

上記より今回必要だった部分を引用します。

新サーバでphpMyAdminを利用して、先ほど編集したテキスト形式のSQLをインポートします。
インポートが完了したら、WordPressの管理画面のURLも変更となるので、テーブル「wp2_options」のカラム「option_name」が「siteurl」のレコードの「option_value」を「http://xxx.jp/wordpress」などから「http://yyy.jp/wordpress」に変更します。
さらに
「wp2_options」のカラム「option_name」が「wp_user_roles」のところを「wp2_user_roles」へ
「wp2_usermeta」のカラム「meta_key」が「wp_capabilities」のところを「wp2_capabilities」へ
「wp2_usermeta」のカラム「meta_key」が「wp_user_level」のところを「wp2_user_level」へ
それぞれ変更します。

基本的には、以下の作業内容となります。

  • 旧urlを新urlに変更(今回は専用フォルダからルートに移動させたため)
  • 旧プレフィックスを新プレフィックスに変更
  • コメントアウトされた説明部分に旧プレフィックスがあっても無視してよい

参考に挙げたページを読む前に、sqlをテキストエディタ(使ったのはTexWrangler)を用いてそれぞれ一括置換していたのですが、それがまずかったのかうまくいかず。

項目名さえ分かれば、項目から該当箇所を探して一つ一つ変えていくほうが安全だったと思います。

phpMyAdminの場合は箇所が分かりやすいので、作業漏れの危険はあっても余計な部分を変更するリスクが減り安心感はありました。

なお、phpMyAdminであれば目視で旧プレフィックスを探して書き換えることもできますので、変更箇所の項目名が分からずとも対応できそうでした。

XSERVERの動作確認URLはWordPressでは使えない

動作確認URL

XSERVERには、上記URLにあるような「動作確認URL」という機能があります。
この機能の役割を以下に引用します。

本機能は、サーバーに設定された独自ドメインに対して、動作(表示)を確認するためのURLを追加する機能です。
こちらの機能を利用することにより、サーバー移転時のネームサーバー切り替え前に、該当ドメイン領域にアップロードしたホームページの表示を確認することができます。

※設定URLにてリンクを生成する動的サイトや、設定ドメインへのリダイレクトを行うCMSプログラム等は、確認できない場合があります。

便利に思えるのですが、※印の注記にある部分がWordPressでは問題となります。
以下のXSERVERの「よくある質問」のページにより明確に書かれていますので引用します。

WordPressの移転に際して「動作確認URL」機能を使いましたが、動作確認ができません。

WordPressはプログラムの仕組み上「動作確認URL」機能との相性が悪く、WordPressの移転に際しては「動作確認URL」機能は使用できません。

こちらのマニュアルに記載の「ネームサーバー切り替え前に動作を確認したい場合」をご参照のうえ、「hosts」にて動作確認を行ってください。

素直にhostsを使えということですね。

結び

今振り返りますと、プレフィックスを旧DBと同じにして、「〇〇options」の「siteurl」のレコードを書き換えるだけでよかったかなと思います。

0人がこの記事を評価

役に立ったよという方は上の「記事を評価する」ボタンをクリックしてもらえると嬉しいです。

連投防止のためにCookie使用。SNSへの投稿など他サービスとの連動は一切ありません。

コメント欄