たかなblog

のんびりと色んな情報を発信していきます。

Web/サービス Wordpress

xdomainからさくらサーバーへの引っ越しメモ

こんにちは、高菜です。
本日は、無料でWordpressサイトが運営できる優良サーバーエックスドメインから、低価格で良質なサービスを提供してくれるさくらのレンタルサーバへWordpressサイトを移転する方法を記載していきたいと思います。

ご存知かとは思いますが、独自ドメインを取得していない場合サイトURLが変更になりますので注意してください。
今回はさくらサーバーのデフォルトURLにサイトを移転→動作確認後にURLを独自ドメインに変更、というややこしい手順を取ります。
ドメインを取得しておらず、サイトURLが変更になることも覚悟したうえで移転する方々は、最後のドメイン変更のみがなくなる感じです。

エックスサーバーとかだとそんな面倒なことをしなくても、動作確認用のURLを発行してくれるらしいので、「サーバー移転したい!動作確認もしたい!閲覧者にはサーバー移転していることを気取られたくない!アクセス数がそれなりに多い!」という方は、多少高くても移転先にエックスサーバーを選んだほうが無難です。

前提条件

移転先はさくらのレンタルサーバー、プランはスタンダードプラン(Wordpressを稼働させることができる一番安いプラン)です。

現在、移転先のさくらサーバーでは既にWordpressをネットワーク化して利用しており、3サイト運営しています。
(手順には全く影響しません)

今回持ってきたいサイトは既に別サーバーで運営しているサイトです。つまり、すでにWordpressをインストールし、サイト運営しているさくらサーバーに、既存のサイトには全く影響を与えず他サーバーで運営しているサイトを持って来たいわけです。

現在運営しているWordpressのネットワークに組み込むのではなく、データベースも別、インストールフォルダも別にしたいので、今回新規でさくらサーバーを契約し、Xdomainから移行してくる場合も手順は全く同じです。

インストール場所は、すでにルートディレクトリに既存のサイトを入れていることから、フォルダを作成してその中に入れていくことにします。

xdomainからではありませんが、ほかサーバーからさくらへお引越しされている、以下の記事を参考にさせていただきました。
大変助かりました。ありがとうございます。

WordPressをコアサーバーからさくらサーバーへ移転した時の手順8
http://designcolor-web.com/2012/11/05/server-transfer/

バックアップ

移動してくる予定のサイトのバックアップを取ります。

バックアップはDBのデータと、画像やテーマファイルの情報の両方を取っておいてください。

画像/システムファイルのバックアップ

私の場合、ファイルはFFFTPを使ってローカルに直接ダウンロードしています。
今回の移行は、あらかじめさくらサーバーにWordpressをインストールし、そこにデータを移していく方法を取るので、.htaccessやwp-config.phpのようなファイルは持っていきません。

データだけ取り出しできれば十分なので、wp-contentフォルダ直下を持っていきます。

 DBのバックアップ

以前私がDBのバックアップ方法として紹介したプラグイン、「WP-DBManager」を使ってみようかと思ったのですが、その設定に必要なmysqldumpのパスがわからない。

Xサーバーと同じかな?と思い試しに「/usr/bin/mysqldump」でチャレンジしてみましたがあえなく撃沈。

はじめての利用になりますが、Wordpressのインポート/エクスポート機能を試してみることにしました。
カスタム投稿タイプなんかも移行できるらしいので。

方法は簡単で、管理画面のツール/エクスポートからエクスポートファイルをダウンロードするだけ。
xmlファイルが簡単に落ちてくれました。

ただ、サイトなんかを確認するとプラグインの設定系はこの中に入っていないみたい。
念のため「phpMyadmin」でもバックアップを取ることに。
結論として、私の場合データ復旧に管理画面からエクスポートしたデータも、phpMyAdminからダウンロードしたデータも両方使いました。

WordPress移転時の、phpMyAdminを使ったDBのバックアップ方法は探せば腐るほど出てくると思いますが、一応手順を載せておきます。

DBの選択とエクスポート

phpMyadminの管理画面にログインすると、画面の左側にデータベースが表示されます。
Xdomainで契約しているアカウント名と同じデータベース名が表示されていると思いますので、こちらをクリックしてください。
(多分どのレンタルサーバーでも同じだと思いますが)

phpMyAdmin

(すけすけですが)青いバーで色々隠しているのでわかりにくいかもしれませんが、画面左、「データベースを選択してください」のすぐ上のやつです。

これをクリックすると画面が切り替わります。

phpMyAdmin2

 

おそらく最初は「構造」タブが開かれているので、「エクスポート」をクリックしてタブを切り替えてください。

画面左、エクスポートの枠の中に、今回エクスポートするテーブルを選択できる枠があります。
全選択の文字をクリックして、すべてのテーブルを選択してください。

枠の下に「CSVデータ」とか「MS Excel用のCSV」とか選択肢が並んでいますが、ここはデフォルトのSQLを選択したままにします。

次にオプションです。

phpMyAdmin3

DROP文を追加するオプションにチェックを入れます。他はデフォルトでOK。

phpMyAdmin4

画面の「ファイルに保存する」にチェックを入れ、デフォルトではありますが、圧縮が「なし」になっていること、変換が「non」になっていることを確認して、「実行する」をクリックしてください。

phpMyAdmin5

DB名.sqlという名前で、ファイルがダウンロードされます。

さくらサーバーにWordpressをインストール

準備ができたらさくらサーバーにWordpressをインストールします。
ルートディレクトリにインストールしないので、さくらサーバーのクイックインストール機能を使用してインストールすることが可能です。

クイックインストールについては、さくらサーバーの公式マニュアルがすごくわかりやすいので参照ください。

データベースの作成
http://support.sakura.ad.jp/manual/rs/web/db_make.html

データベースは「追加」作成するので、データベースの新規作成から入って設定してください。
また、文字コードはUTF-8を指定してくださいね。

sakura

データベース名やデータベースユーザー名は変更することができないので、既存のものと合わせることができません。
ですがまぁ、好きな名前を指定して作成しても大丈夫でしたので、文字コードのみ変更して作成してください。

クイックインストール
http://support.sakura.ad.jp/manual/rs/web/quick_blog.html

これも手順通りでOKです。
手順の一番最後、インストールのボタンの下にデータベースの接頭語を指定する欄があり、デフォルトはwp+おそらくランダムな英数字になっていました。

これも無視してインストールを実行。完了させます。

データを復元

ファイルの復元

FTPツールなどを利用して、バックアップを取ったファイルをアップロード。
ここはかなり時間がかかりましたが、根気強く待ちます。。

sqlデータの置換

テーブル名の置換

ファイルの復元が完了したら、まずは「phpMyadmin」で取ったバックアップからデータを復元します。
まず、さくらサーバー(移転先サーバー)の「phpMyAdmin」にログインしてください。

エクスポートした時と同じように、今回操作したいDB名をクリックすると、構造タブが開きます。
そこでテーブル名が確認できるのですが、おそらく「wp+ランダムな英数字+テーブル名」になっていますよね?

一方Xdomainからダウンロードしたテーブルは、「wp_テーブル名」になっていると思われます。

このテーブル名の前の部分を「接続語」というそうです。さくらサーバーへWordpressをインストールする際にwp_に変更することもできたのですが、セキュリティ的に接続後はランダムな英数時のほうがいいようなので、この機会に変えてしまいます。

まず、先ほどバックアップしたsqlファイルをテキストエディタで開いてください。
Windowsのメモ帳だと文字コードが変わってしまうため、「さくらエディタ」や「TeraPad」等を使う必要があります。

開いたら、先ほどの「接続後」部分を置換します。
「TeraPad」の場合は、ツールバーの「検索」から「置換」を選び、「検索する文字列」に「wp_」(Xdomainで使っていた元の接頭語)を、置換後の文字列にランダムな英数字を指定、あとは「すべて置換」をクリックするだけです。
(使ったことないですが)たぶんさくらエディタ等の他のエディタも同じ感じだと思います。

サイトURLの置換

同様に、サイトURLが変更になる場合こちらも置換してください。
同じドメインのまま引っ越す方は必要ない作業なのですが、私の場合一度動作確認がしたかったので、さくらサーバーのサブドメイン(仮のURL)に空のサイトをインストールしています。

現在、Xdomainに置いてあるサイトは消してないのでそのままですが、さくらサーバーへインストールしたサイトも存在することになります。
さくらサーバーにある空サイトでデータを入れると、Xdomainとさくらサーバー、サイトが2つあることになりますね。
さくらサーバーのサブドメインにインストールしたので、新サイトのURLはさくらサーバーのアカウント名/フォルダ名になっているはず。

違うURLでサイトをそれぞれ表示させ、投稿や画像が問題ないか確認するためにこんなことをしています。
Xサーバーだと、わざわざこんな手間(別URLで空のWordpressをインストール→データ移行→動作確認→ドメイン引っ越ししURLのみ上書き)しなくても、確認用URLで動作確認できるらしいですが、、

今のままでは、新サーバーにアップするデータの各URLが元サイトと同じ独自ドメインになっているため、ドメイン引っ越しまではサイトの動作確認どころか管理画面へのログインすらできません。

なので、一時的に書き換えます。

置換前:独自ドメイン(引っ越し予定の、旧サーバーで稼働しているサイトのURL)
置換後:新サーバーにインストールした空サイトのURL(動作確認用仮URLの代わりです)

置換後は上書きではなく、名前を付けて保存で、「置換後.sql」とかにして保存しておくと、元のファイルと見比べできたり、置換ミスしていても元ファイルがあるので安心です。
また、テーブル名を置換したものと、テーブル名+サイトURL両方置換したものを別ファイルとして保存しておくと、ドメイン移行後にサイトURLを戻す時に楽ちんです。

sqlデータのインポート

さて、置換が終わったらさっそくインポートしていきます。
移転先の「phpMyAdmin」にログインし、対象データベース名をクリック。
その後「インポート」のタブをクリックします。

phpMyAdmin6

ファイルの選択画面から、置換後のsqlファイルを指定して実行してください。
設定はデフォルトのままのはずですが、念のためインポートするファイルの形式がSQLになっていることと、変換がnonになっていることを確認してくださいね。

あとは実行!!

phpMyAdmin7

この表示が出れば成功です!

動作確認

 

記事情報、カスタム投稿、カスタムフィールドやメディアなどが問題なく移行されているかの動作確認を行います。

ヘッダーや表示設定、投稿設定、パーマリンク設定、ユーザー設定、あとはウィジェットなどもお忘れなく。
私の場合、プラグインは有効化して再設定をしなければいけないのがほとんどでしたが、中には設定がそのまま残っているのもありました。

今回移行したいサイトは、「Custom Post Type UI」で設定したカスタム投稿タイプをゴリゴリに使用しているので、その設定もしてあげる必要もあるなーと思ってのですが、設定、全部残っていました。

あと危惧していた「Custom Field Template」の設定。
こちらはインポート/エクスポートが画面の下のほうにあったのでそれを利用して設定を戻せました。

ウィジェットなんかも「停止中」に入ってしまってはいたものの、各設定はそのままになっていました。
問題なければURL置換前のものを再度インポートして、wp-optionsの「siteurl」を変更し管理画面にログイン。

プラグインなどを有効化したり、ウィジェットの設定を戻したら再度wp-optionsの「siteurl」を変更(独自ドメインに戻す)して、あとはドメイン引っ越しの手続きをするだけです。もう少し!

wp-optionsの「siteurl」を変更については、参考にさせていただいたサイトで詳しく載っていましたので、そちらを参考にされてください。
WordPressをコアサーバーからさくらサーバーへ移転した時の手順8
http://designcolor-web.com/2012/11/05/server-transfer/

ネームサーバーの書き換え

独自ドメインを利用していて、URLを変更せずサーバーを移転したい場合は、ネームサーバーの書き換えが必要です。

URL置換前のSQLを「phpMyAdmin」にインストール
wp-optionsの「siteurl」を仮URLに変更し、管理画面にログイン
プラグイン設定、ウィジェットを戻したらログアウト
wp-optionsの「siteurl」を元の(本来の)URLに戻し、いよいよネームサーバーの書き換えです。

何度も書きますが、上記のめんどくさい手順は、移転先が「エックスサーバー」であれば必要ありません。
動作確認しても結局SQLファイルを書き換えてんだから意味ないじゃん、という突っ込みも聞こえてきそうですが、現状動作確認方法がこれしか思いつかなかったので、私はこれでやりましたよ、とだけ。。

さくらサーバーで独自ドメインの登録

まず、さくらサーバー側で、「今インストールしたこのサイトは、このURLで動かすよ!」という設定を行います。

お持ちの独自ドメインを、以下マニュアルを参考に登録してください。
さくらのレンタルサーバーの公式マニュアルです。サブドメインの設定方法も詳しく書かれていますが、サブドメインを使わない方は、一番上から読み進めていけば大丈夫です。
ドメインを利用(他社で取得・管理のドメイン)

エックスドメインにさくらのサーバー情報を登録

今度は独自ドメインに、「このドメインはこのサーバーで使うよ!」という設定をしてあげなければいけません。

エックスドメインの場合、管理パネルにログインするとお持ちのドメインの一覧が表示されています。
そのドメインの右横にある「ドメイン管理」に入り、「ネームサーバーの確認・変更」をクリック。

現在のネームサーバーがひょじされるので、「ネームサーバーを変更」をクリック→「ネームサーバーの直接編集」
でネームサーバーを書き換えます。

エックスドメインはネームサーバーが5つあり、デフォルトで5つ埋まっているのでびっくりするかもしれませんが、
ネームサーバー1、ネームサーバー2にそれぞれ以下を設定してあげてください。

ns1.dns.ne.jp
ns2.dns.ne.jp

ネームサーバー3~5は空白にし、(空白にしないとさくらサーバーが落ちた時にややこしいことになります)ネームサーバーの変更(確認)をクリック。

あとはひたすら待つだけです。
私は夜作業して、翌日朝には反映されていましたが、丸1日かかる場合もあるようなので気長に待ちましょう。
当然データバックアップ後、ネームサーバー反映前に更新したデータ、もらったコメントなどは移転後のサイトには反映されていないので、アクセスが少ない日時なんかを狙うといいと思います。

以上でサーバー移転は完了です。お疲れ様でした!!

サーバー移転の注意点と補足

今回は、(あまり意味があるかどうか正直よくわからない)動作確認のために別URLで一度インストール&wp-contents以下のデータだけ移行して動作確認を行いましたが、動作確認後に再度生のデータを触っているので、あまり意味はないかもしれません。

動作確認が必要ないのであれば、wp-contentsのある階層ごと丸ごと持ってきて、設定ファイルを触った方が無難です。
というか、動作確認のためにデータ入れた後で時間がなくて放置とかしちゃうと、仮URLもインデックスされて大変なことになります。

こわい、というのであれば元のサーバーにおいてあるデータをしばらく消さずに、もしサーバー移転後に不具合があればまた戻せるようにしておく方が無難ですね。
どちらにしても、更新頻度が高かったり、コメント数やアクセス数が多いサイトには向かない移転方法です。

記事データの置換は怖くていやだ、でも動作確認はしたい、ということであれば、潔くエックスサーバーに移転するか移転自体を見合わせる必要があります。

今後、さくらのレンタルサーバーにも動作確認用URLとかの機能が付くといいですね。

動作確認ではまったところ。

上記でサーバー移転の記事は終わりなのですが、個人的にはまったところをメモ。
エックスドメインからエックスサーバーにサーバー移転したときは問題なかったので、私の手順がおかしかったのか、はたまたさくらサーバー特有の現象かもしれません。

きちんと各URLも書き換えたし、持ってきたのはwp-contentの中しか持て来ていないしフォルダ階層維持しているし、テーブルデータもファイルも全部持ってきたのに、元々の階層も維持しているし、違うのはアクセスするときのURLのみ、のはずなのに、

なぜかメディアファイルが表示されない。

表示されないというか、グレーで出るんですよね。
ファイルパスが見つからないと、通常はファイルが壊れたアイコンのようなものが出るんですが、そうではなく。

グレーの状態で、実際にメディア欄に表示されているURLをアドレス欄に打ち込むときちんと表示されているんです。

メディアンのページ(パーマリンク)にアクセスすると、なぜかダウンロードのリンクがあり、リンクをクリックして初めて画像が表示されるんです。
いやそうじゃなくて、ページに直接画像を表示させたいんだけど。。

調べても解決できなかったので、もし同じ現象になった方がいらっしゃったら、私はこれで解決しましたよ、とだけ。
因みに、移転作業でデータ復元を途中で失敗してしまい、やり直したい方の参考にもなると思います。

メディアデータの入れ直し

メディアデータのもろもろはpost、postmetaテーブルに入っているので、これをきれいにして入れなおします。

これだけ入れなおせばいいのですが「phpMyAdmin」でバックアップ→テキストエディタでURL置換→インポートで復元
だとうまくいかないことが分かったので、もう一つ、Wordpressの管理画面で「エクスポート」していたデータを入れなおすことに。

ただ、今現在すでに「post、postmeta」テーブルのデータは復元してしまっているので、これを一度きれいにしてあげる必要があります。
因みに、何も考えずにデータ入ったまま、管理画面から「インポート」すると、全部のメタデータ(カスタムフィールド含む)が2つできちゃいました。

料理サイトとかでそれぞれの料理の情報(時間、材料、グラム数、カロリーなど)をカスタムフィールドで管理していた場合、すべての値が2つとかになっちゃうので(時間:・10分・10分、カロリー:・135キロカロリー・135キロカロリー といったように、一つのフィールドに対して同じ値がリストで持たれちゃっている感じ)、カスタムフィールドを使っている皆さんは、Wordpressのインポート/エクスポート機能の利用は気を付けてくださいね。

phpMyAdminで、直接post、postmetaテーブルを空にしてみる

どのテーブルのデータが余分なのかわかってるんだから、空にしてみちゃえばいいじゃん!
ということで、phpMyAdminから直接対象テーブルを空にしました。

管理画面にログインできなくなりました。

デスヨネ。HAHAHA

プラグイン「WP-DBManager」をつかう

結局たどり着いた解決策がこれ。プラグインを使って、Wordpressの管理画面から「post、postmeta」テーブルを空にします。
これなら空にした後に「管理画面にログインできない!」という悲劇を防ぐことができます。
Wordpressのインポート機能は管理画面に入れないとできないですからね。。

WP-DBManagerの詳しい使い方は過去に詳しく紹介していますので、参考にされてください。

WP-DBManagerの使用方法

注意していただきたいのは、postテーブル、postmetaテーブルを削除するのではなく空にすること。
具体的には、「Empty/Drop Tables」から作業する際、Dropではなく、必ずEmptyを選択してください。

WordPressのインポート機能を使う

データを消去したら、Wordpressのインポートを使ってデータを入れてあげます。
管理画面のツール>インポートから、Wordpressを選択し、ポップアップが表示されますので、「いますぐインストール」のボタンからプラグインをインストールしてください。

インストール後、プラグインインストールと同じように、有効化するかどうかのページが表示されますので、
「プラグインを有効化してインストールツールを実行」をクリック。

「Import WordPress」が表示されたら、ファイル選択から、xmlファイルを選択しましょう。

その後、「ファイルをアップロードしてインポート」をクリックすると、どのユーザーの記事としてデータをインストールするのか設定する項目と、「Import Attachments」の項目があるのでチェックを入れてsubmit!

データを見たらきちんとメディアファイルが表示されました!

 

 まとめ

今回のサーバー移転は、変な方法を取ったため、大変な割に役立つ経験ではありませんでした。。
同じ手順でやろうと考えている方、やめといたほうがいいですよ、とだけ。

WordPressのインポート/エクスポート機能やDB-Managerのデータは、あくまでバックアップであって移転時に使うもんじゃないなぁと思いました。

その後、わけあってエックスサーバーをレンタルし、さくらサーバーからエックスサーバーへ移転を行ったのですが、ほんと何だったんだろう、、というくらいすんなりいきました。
サーバー移転が大変だーとかで、設定ファイルをいじらない方法を取ってバカみたいな思いをしましたほんと。時は金なり。

とはいえ、まだ外枠だけしか作っていないとか、別ブログをWordpressに移転する、等といった時はどうしても近い手順を取ることになると思うので、この記事が誰かの何かしらの役に立てれば嬉しいです。

ありがとうございました。

-Web/サービス, Wordpress
-, , , , ,