XサーバーにあるWordPressブログを別のXサーバーへ移行してみた

Xserver内でWordpressブログお引越し
スポンサーリンク

久々のブログ更新となってしまいました。

ここのところ私生活がやたらドタバタしていたせいで、ほとんど副業らしい作業は
出来ておりませんでしたが、ツールや外注さんを使った作業はちょこちょこと
進めていたので、なんとか収益は上げられています。

で、2019年も残りわずかということもあり、前々から実施したいと思いつつも
中々手を付けられていなかった、

『エックスサーバーのワードプレスブログを別のエックスサーバーへ移行する』

という一大プロジェクトを片付けてきました。

今後何度もやることではないと思いますが、備忘録として残しておこうと思います。
誰かの役に立てば嬉しいです。

スポンサーリンク

作業の前提条件

まず今回の作業の前提となる構成を簡単に説明しておきます。

構成としては下図のようになっており、
僕はエックスサーバーで、2つのサーバープランを契約 (サーバーID : AAA / BBB)しており、
そのうちの1つで WordPress ブログを運営していました。

エックスサーバー内の別のサーバーへWordpress ブログを移行する際のイメージ図

今回ある理由から、この WordPress ブログを
エックスサーバー内で契約している別のサーバーへ移行することになったわけです。

スポンサーリンク

サーバー移行の詳細手順

今回作業をするにあたり、参考にしたマニュアルは以下です。
さすがは天下のXServerさん、かなり丁寧なマニュアルで助かりました。

サーバー移転手順 | レンタルサーバーならエックスサーバー
すでにエックスサーバー以外で稼働中のウェブサイトをエックスサーバーへ移転するための手順です。当マニュアルに沿って作業を行っていただくことで、「ホームページが表示されない期間の発生」を防ぎつつサーバーを移転することが可能です。

ただし、このマニュアル自体は
他社サーバーからエックスサーバーへの移行についてのものですので、
そのままそっくりこの手順通りというわけにはいきませんでした。

手順の不明点については、Xserver のサポートに問い合わせたりしています。



以下、実際に行った作業の詳細を記載していきます。
全体の流れは以下です。

  • (移行元)Wordpressが使用するデータベースのバックアップ
  • (移行元)Wordpressのwp-config.phpファイルをバックアップ
  • (移行元)サーバー上のブログデータをバックアップ(=ダウンロード)
  • (移行元)ブログのドメインを削除
  • (移行先)ブログのドメインを登録
  • (移行先)Wordpressが使用するデータベースの作成
  • (移行先)データベースの情報をインポート
  • (移行先)ブログデータをアップロード
  • (移行先)Wordpressのwp-config.phpファイルを編集
  • (移行先)ブログへのアクセス確認

上記の順序で作業をしないと、せっかく積み上げてきた WordPress ブログの記事などが
全部なくなってしまう可能性がありますので、十分注意してください。

また、一旦移転元のサーバーからブログ情報を削除し、
移転先のサーバーへブログ情報を移すという手順の関係で、
一時的にブログへアクセスできない時間帯が発生することにも注意です。



以下のマニュアルに記載がありますが、
エックスサーバーでは、既に別のサーバ-IDで登録されているドメインを
他のサーバーIDで登録するこができません。

Q.異なるサーバーIDへドメイン運用サーバーを変更したいです。(XServer サポート)



ためしに、移行元のサーバーID:BBB に登録されている example.com のドメインを消さずに
移行先のサーバーID:AAA に登録してみたところ、下図のようにエラーになりました。

別のサーバーIDで運用中のドメイン名を他のサーバーIDに重複して設定しようとしたらエラーになった

そのため、まずは移行元サーバー(サーバーID:BBB)のサーバーパネルにログインし、
Wordpress ブログで使用しているドメインの情報を削除するのですが、
移行元でドメイン削除してから移行先でブログ再構築するまでの間は、
ブログがこの世から消えた状態になりますので、アクセスは発生しない
ことに注意してください。



サポートに問い合わせたところでは、
ブログへのアクセスが途切れないようにサーバー移行をしたい場合は、
以下のような手順を踏むしかないようです。

エックスサーバー(移転元) → 他社サーバー → エックスサーバー(移転先)

非常に面倒ですね ^^;
他社サーバーを使うということは、別途契約金とかも必要になってきますし。。。

僕のブログはそこまで常時アクセスを求めるものでもなかったので、
今回は一時的なアクセス停止を許容する方向で進めました。

(移行元)Wordpressが使用するデータベースのバックアップ

まずは WordPress が使用しているデータベースのバックアップを行いました。

WordPress では、記事タイトルや本文などの記事情報を、
データベースというデータの格納庫に収納しています。

イメージとしては、巨大な EXCEL のシートに、
記事タイトル、記事本文、記事作者、・・・ というように行単位で
情報が格納されているようなものです。

このデータをバックアップし、
新しいサーバーへ移動させることで、移行先の WordPress でも
これまで投稿してきた記事を表示させることができるわけですね。



データベースのバックアップ手順については、
以下のマニュアルを参考に実施しました。

■データベースについて:手動バックアップ

まず、Xserver の管理画面にログインします。
以下の URL からログイン画面へ移動。

Xserver ログイン画面

Xserver の管理者パネルへのログイン画面



移行元のサーバー(サーバーID : BBB)の管理パネルへログインします。

Xserver のサーバーID毎の管理パネルログイン画面



サーバー管理のメニューから、
「データベース」→「MySQLバックアップ」をクリックします。
(※MySQLはデータベースの種類の1つです。)

サーバー管理画面からデータベースメニューの「MySQLバックアップ」を選択する



「MySQLバックアップ」のメニューから、「手動バックアップ」を選択し、
圧縮形式は「圧縮しない」にチェックを入れ、
移行元の WordPress で使用しているデータベースの「エクスポート実行」をクリックします。

MySQL の手動バックアップ実行画面



ファイルのダウンロードが始まります。
拡張子は “sql” です。

自分のパソコンの適当な場所に保存しておいてください。
後で使用します。

MySQL のバックアップファイルを保存する



こんな感じのファイルが保存できたら、データベースのバックアップ取得は完了です。

データベースのバックアップファイル

(移行元)Wordpressのwp-config.phpファイルをバックアップ

wp-config.phpファイルは、一言でいえば WordPress の諸々の設定が書かれている
設定ファイルです。

先ほど出てきたデータベースについての設定も書かれており、
『Wordpress ブログの記事情報をどのデータベースへ記録するか』
といった情報も記載されている、とても重要なファイルです。
これをバックアップしていきます。



FTPソフトなどで、移行元のサーバー(サーバーID : BBB) へログインします。
そして、移行元 WordPress ブログのドメインのフォルダへ移動します。
(※僕は サーバへのファイル転送ソフトには WinSCP を使用しています。)

WinSCP の対象ドメインへの接続完了画面



移行元ドメインのフォルダ内で、『wp-config.php』というファイルを見つけて
自分のパソコンへコピーしてきます。

大抵の場合、
『ドメイン名(example.comなど)/public._html』
の下にあると思います。

wp-config.phpファイルのバックアップ画面

このファイルは後で内容を確認しますので、大切に保存しておきます。

(移行元)サーバー上のブログデータをバックアップ(=ダウンロード)

移行元サーバー上にあるブログデータを、自分のパソコン上へ
ダウンロードしてきます。

先ほどと同様に FTP ソフトで移行元のサーバー(サーバーID : BBB) へログインし、
そして、移行元 WordPress ブログのドメインのフォルダへ移動します。

そして、ドメイン名フォルダ配下のフォルダやファイルを
丸ごと自分のパソコン上へコピーします。
(public_html フォルダだけあればよいですが、念のため全部バックアップしておきます)

ドメイン配下のフォルダ群をすべてローカル環境へバックアップする

(移行元)ブログのドメインを削除

ここまで諸々バックアップが完了したら、ついに移行元のドメインを削除します。

移行元のサーバー管理パネルに移動し、
「ドメイン設定」のメニューを開きます。

サーバー管理パネルのドメイン設定を選択する



「ドメイン設定一覧」から、今回のサーバー移行対象のドメインを選択し、
「削除」をクリックします

ドメイン設定画面から、移行元ドメインを削除する



確認画面で「削除する」をクリックします。
※これでドメインが完全に削除されます。
ドメインを削除してしまうと、Wordpress の設定がすべて削除されますので、
すべてバックアップできていることを改めて確認してください。

移行元のドメイン削除_最終確認画面

ドメイン削除完了画面



ここまでで、移行元のサーバー(サーバーID : BBB) での作業は終了です。
次からは、移行先のサーバー(サーバーID : AAA) での作業に入っていきます。

(移行先)ブログのドメインを登録

次は、移行先のサーバーIDの管理パネルにログインし、
移行先ブログのドメインを登録していきます。

ドメイン名はもちろん、移行元で使用していた WordPress ブログのドメイン名です。



メニューから「ドメイン設定」をクリック。

移行先サーバーのメニューからドメイン設定画面へ移動する



「ドメイン設定追加」タブを選択し、「ドメイン名」欄に
Wordpress ブログで使用していたドメイン名を入力し、
「確認画面へ進む」をクリックします。

ドメイン設定追加画面からドメインを追加していきます



次の画面では「追加する」をクリックする。

ドメインの追加確認画面



以下の画面になったら、ドメイン追加は完了です。

ドメイン追加設定完了

(移行先)Wordpressが使用するデータベースの作成

次は、移行元で取得したWordpressのデータを格納する
データベースを作成します。

移行元から取得した WordPress の記事情報などを格納する先を、
移行先のサーバーでも作成してやります。



メニューから「データベース」の「MySQL設定」をクリック。
データベースのメニューからMySQL設定を選択する



「MySQL追加」タブを選択し、
データベース名のところに適当なデータベース名を入力します。
※ここで決定したデータベース名は後で使用するので、
覚えやすいものを入力し、メモしておきます。

MySQL追加画面にてデータベース名を入力します



確認画面でデータベース名を確認し、「追加する」をクリック。

データベース追加の確認画面



ここまでで、移行先サーバーに、Wordpress ブログ用のデータベースが作成できました。
次は、このデータベースを使用するためのユーザーを作成していきます。

(移行先)データベースのユーザーを作成

同じく「MySQLの設定」画面から、
「MySQLユーザ追加」タブを選択します。

MySQL設定のユーザー追加設定画面

MySQLユーザIDには、先ほど作成したデータベースと紐づく
覚えやすい文字列を入れます。

また、パスワード欄には、バックアップした『wp-config.php』に記載されている
「MySQL データベースのパスワード」の値を入力します。

wp-config.php を開くと、下のような記載がありますので、
この中の以下の個所に記載されている文字列を、パスワードとして使用します。

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘************’);

ここで設定した『MySQLユーザ』と『パスワード』は、
後の作業で使用しますので、メモしておいてください。



確認画面を経て、「追加する」をクリック。

MySQLユーザの追加確認画面



ここまでできたら、作成したデータベースと
作成したデータベースユーザーとを結びつけます。

「MySQL一覧」タブを選択します。
そして、先ほど作成したデータベースの、「アクセス権未所有ユーザ」列で
先ほど作成したデータベースユーザー名を選択し「追加」ボタンをクリックします。

作成したデータベースとデータベースユーザとを結びつける



以上で、データベースユーザの作成と設定は完了です。

(移行先)データベースの情報をインポート

次は、ここまでで作成したデータベースに、
移行元から取得したデータベースのデータを入れていきます。

メニューから「データベース」→「phpmy admin(MySQL5.7)」をクリック。

データベースのインポート画面へ移行する



ユーザー名とパスワードが求められるので、
先ほど作成した MySQL ユーザー名と、その時に設定したパスワードを
それぞれ入力し、「OK」をクリックします。

pypmyadminへのログイン管理者情報入力画面



phpMyAdmin の管理画面に入ります。
この画面からは、先ほど作成したデータベースに対して
データの格納(インポートといいます)を行います。

画面左にあるメニューから、先ほど作成したデータベース名を選択してください。

phpMyAdminの管理画面からデータベース管理画面へ進む



下図のような画面になります。
※「テーブルがありません」と表示されていますが、まだデータベースの枠だけを
作成した状態ですので、問題ありません。

画面上のメニューから、「インポート」タブを選択してください。

データベースの管理画面から「インポート」タブを選択する



下図のような画面になります。
「インポートするファイル」メニューの「アップロードファイル」に
チェックを入れ、「参照…」ボタンから、前手順でバックアップしていた
移行元データベースのバックアップファイル(拡張子がsql)を選択します。

そして、画面最下部にある「実行」ボタンをクリックします。

データベースへsqlファイルをインポートする



以下の画面が表示されたら、移行先サーバーの
データベースの設定はすべて完了です。

データベースへのSQLファイルのインポート完了画面

(移行先)ブログデータをアップロード

移行元から取得したブログデータを、FTPソフトを使用し、
移行先サーバーのドメイン配下へアップロードします。

アップロード先は、
【移行先ドメイン名】/public_html フォルダの下です。

前手順でダウンロードした、移行元ドメインフォルダ内の public_html
フォルダの中身を、そのままごっそりとアップロードしてください。

WinSCPを使用してpublic_htmlフォルダ配下へバックアップフォルダをアップロード



下図のようになれば、アップロードは完了です。

WinSCPのアップロード完了状態

(移行先)Wordpressのwp-config.phpファイルを編集

いよいよ最後の作業です。

【移行先ドメイン名】/public_html フォルダにアップロードした中から
『wp-config.php』をダウンロードし、ファイルの中身を
今回作成したデータベースやデータベースユーザー名に変更します。

変更する箇所は以下です。

—————————————-
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘■移転先のMySQLデータベース名■’);

/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘■移転先のMySQLユーザー名■’);

/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘※変更しない※’);

/** MySQL のホスト名 */
define(‘DB_HOST’, ‘■移転先のMySQLホスト名■’);
—————————————-

MySQL のホスト名は、Xserverメニューの
「MySQL設定」から MySQL5.7 ホスト名(mysql●●.xserver.jp と記載されている箇所)を
確認するとわかります(下図)。

wp-config.phpの編集



編集が終わったら wp-config.php を保存し、
元の場所へアップロードして上書きします。

以上で、Wordpress ブログの移行作業自体は完了です。

(移行先)ブログへのアクセス確認

移行する前と同様に、Wordpress ブログへアクセスし、
記事が正常に表示されることを確認します。

また、Wordpress の管理者画面にログインし、
管理画面が正常に表示されること、記事の編集や投稿が問題なく行えることを確認します。

スポンサーリンク

ブログの表示がおかしくなった時の対処方法

ここまで手順通りにやっていれば、Wordpress ブログの移行は
問題なく完了しているはずですが、php のバージョン差異によるトラブルが
発生することがありますので、その対処策も書いておきます。
(実際、僕のブログ移行時も発生し、少し焦りました^^;)

トラブルの内容

移行したブログの動作確認をしていたところ、
画面上に以下のようなメッセージが表示されていることに気づきました。

public_html 配下を再度アップロードしてみても
Wordpress 画面を再読み込みしてみても消えることはなく、
少しの間途方にくれました。。。

ブログ移行時に表示されたエラーメッセージ

Warning: Use of undefined constant works – assumed ‘〇〇〇’ (this will throw an Error in a future version of PHP) in /home/abc/example.com/public_html/wp-content/themes/sample/index.php on line 10

トラブルの対応策

エラーメッセージをもとにネット検索したところ、
割とすぐに回答が見つかりました。

どうやら php のバージョン差異によるエラー出力だった模様。

php には全く詳しくありませんでしたが、
エラーメッセージに記載されているファイルの行番号のところへ行き、
対象の文字列(上記では〇〇〇)を ‘(シングルクォーテーション) で囲ってやればOK
でした。
(上記の場合は、example.com ドメインの
public_html/wp-content/themes/sampleフォルダ下にあるindex.php ファイルの 10行目を編集する)



本トラブルを解決するにあたり、
以下のサイトを参考にさせていただきました。

最後に

WordPressやサーバー管理画面の扱いには慣れているつもりでしたが、
それでも慎重に作業をしていたら、いつの間にかかなりの時間を消費していました^^;

ドメインの移管などもそうですが、間違った作業をしてしまうと
せっかく育てたサイトやブログが消えてしまったり、表示されなくなってしまう可能性がありますので、
作業をされる際には十分な時間と体力、精神的な余裕があるときを選ぶようにしてください。

コメント