独自ドメインで運用していたWordPressのサイトを別のサーバーに引っ越す方法について今回行った方法をメモ。
メジャーな方法ではないので、万人向けではないけれど方法の一つとして。
一応自己責任でお願いします。
可能ならば、素直に引っ越しプラグイン「All-in-One WP Migration」を使った方が楽。
今回やった方法について
今回の移行方法は良くある「全データコピー」でも「引っ越しプラグインを使った方法」でもなく、「WordPressのインポート/エクスポート機能をフルに使う方法」でやった。
理由としては「データコピー」も「引っ越しプラグイン」 もこれらの方法でやろうとしたら肥大化した謎のデータで5GB以上になっており、これらの正攻法が使えなかったから。
WordPressのインポート/エクスポート機能を駆使する方法
メリット
・データがすっきりする
今回の目的。
バックアップを撮ろうとすると5GB以上あったのが、たったの100MB程度に。
・データベースに直接のアクセス不要
データベースへアクセスするパスワードを忘れて、phpMyAdminすら使えない状況でも移行が出来る。
デメリット
・結構手間がかかる
冗談抜きに結構な手間がかかる。
・一部情報が失われる
プラグインによって蓄積されたデータが消えてしまう。
よく言えば軽量化。
・FTPによるアクセスは必須
・カテゴリIDが変わってしまう
カテゴリIDが変わってしまうので、カテゴリ別ページのURLが変更になる。
たちが悪いことに以前使われていた番号に割り振られることもあるので、場合によっては意図したカテゴリとは違うカテゴリに移動するようになってしまうかも。(置換で解消可能)
WordPressの引っ越し方法
本題。
0:事前準備
0-1:元ブログのバックアップ
色々と弄ることになるので、とりあえずバックアップしておいた方が安全。
お好みの方法で。
0-2:サーバーを用意する
移転先のサーバーが無いと何も出来ないのでまずは用意。
必要に応じて初期設定。
レンタルサーバーを借りる場合、最初の無料期間中に動作確認できればベスト。
0-3:サーバーにWordPressをインストール
同名の新サイトを普通に立ち上げる感じで普通に初期設定。
おそらく、テストの為に何度もインストールとアンインストールを繰り返し、その為に入力しないと行けなくなるので、メールアドレスとかをコピペできるようまとめておくと楽。
1:引っ越し前のサーバからデータを抜く
1-1:写真のサルベージ
FTPソフトを用いて「wp-content/uploads」の中身を全てローカル上にコピーする。
1-2:全プラグインを停止する
可能な限り、一度全プラグインを停止する。
1-3:WordPressのエクスポート
WordPress管理画面の「ツール→エクスポート」ですべてのコンテンツのエクスポートファイルを取得する。
「wordpress.XXX-XXX.xml」
1-4:WordPressのcsvエクスポート
プラグイン「WP CSV Exporter」をインストールし、「投稿」と「固定ページ」のcsvデータ版をエクスポート。
「export-page-XXX.csv」と「export-page-XXX.csv」
2:新サーバに引っ越し
いきなり本番環境を作ろうとせずに、一旦実験用環境を作って移行作業を試し、感覚掴めたら改めて本番環境を作るのを推奨。
2-0:ブログの設定
テスト環境の場合、重複コンテンツにならないように、管理画面「設定→表示設定」で「検索エンジンがサイトをインデックスしないようにする」にチェックを入れる。
2-1:写真のアップロード(FTP)
引っ越し先の「wp-content/uploads」に上記でダウンロードした写真データを、ディレクトリ構成を変えずにそっくりそのままアップする。
uploads 内にあるプラグインによるアップロードファイルは引き継げないのでアップロードは不要。(例として「download-manager-files」など)
2-2:WordPressのインポート
プラグイン「WordPress インポートツール」を使い、wordpressデータをインポートする。
この時点で、なんとなくの雰囲気が整うはず。
2-3:csvデータのアップロード
上記だけでは、サムネイル情報などが不足しているので、プラグイン「Really Simple CSV Importer」を用いてCSVデータをアップする。
投稿と固定ページを順番の順でインポート。
これでデータの移転作業は終了。
3:移行先のの整形
3-0:テーマのインストール
見慣れたデザインの方が問題を見つけやすいので、このタイミングで今までのテーマを入れておくのも手。
3-1:リンクの修正
文中に含まれる画像などのパスが移行前のままなので現環境に合わせ修正する。
(今表示されている画像は旧環境から引っ張ってきたもの)
プラグイン「Search Regex」を使って一括置換すると楽。というか必須。
動作確認なら、ここまでやって問題なければひとまずOK。
3-2:カテゴリーIDの修正
ここからは順不同
移行前と移行後のカテゴリIDを比較し、カテゴリーへのリンクを使っているなら、頑張って修正していく。
引っ越し作業は位置操作したら放置が多いので、作業量的意味では最難関。
IDの取得方法はアナログな方法ながら、新旧両方のブログで全てのカテゴリ別ページにアクセスしてひかえるのが確実。
3-3:環境を整える。
デザイン、設定、プラグインなどを好みに応じて設定する。
4:本番環境
ここからネットワークの移行作業。
今までのブログへのアクセスが途絶えるので、実験サイトで環境移動できることを確証してからやる事。
4-1:ドメインの登録
サーバーにドメインを登録する。
4-2:WordPressを設定
ドメインにアクセスしたときにWordPressサイトが表示されるように設定する。
ただし、現時点ではドメインには移行元のブログが登録されているため、移行元のブログが表示されるだけで、設定すべき移行先は表示されない。
そこで、まずは設定に使っているPC設定の「ホスト(host)」を変更して移行元・移行先の表示を切り替えて作業していく。
いきなりDNSを切り替えることはしないほうが良い。
4-3:ネームサーバー(DNS)の変更
問題なく動くことを確認できたら遂にDNSを切り替える。
設定は契約している各ドメインンサーバのヘルプ参照。
あとは待てば随時切り替わっていくのを待つだけ。
72時間ぐらい待てば完全に切り替わる。
「検索エンジンがサイトをインデックスしないようにする」を無効にするのも忘れずに。
今回やった失敗
同じ症状で困っている人がいたら、参考になることを祈って。
DNS変更してしばらくしたら画像が表示されなくなった
→おそらく画像のリンクが旧サーバーを参照してしまってる。
自サーバーのファイルを参照するようにリンクを置換すれば直るはず。
DNS側に原因がある場合、時間経過で直る事もあり。
そもそも新旧ブログを比較したい場合、hostファイルでURLとIPの設定さえすれば、DNSを切り替えなくても両方とも閲覧可能。
画像のファイルに変な拡張子が増えててサムネが表示できない
→おそらく画像圧縮系プラグインのせい。停止して再確認。
ブログ移行後Jetpackが認証出来ない
「’Error authorizing. Page is refreshing for an other attempt.」と表示され認証が通らない。
→時間を空けた後、普段使わないブラウザ(キャッシュとかが無い状態のブラウザ)で何度か試したらやったら通った。
公式に問い合わせをしても同様の回答だった。
まとめ
・「WordPressのインポート/エクスポート機能をフルに使う方法」でも移行はできる。
・ダウンロードやアップロード、インポートなど、待ち時間がかなりかかる。
・バックアッププラグインによるバックアップがあっても、簡単に復旧出来るとは限らない。
・DNSを切り替えるのは全てが終わってから。host設定で同URLのページ両方にアクセスできる。
というわけで、ブログの移行作業についてのメモでした。
移行するつもりが無くとも、いざという時に備えて、一度くらいは引っ越しという名の実質復元作業の経験をしておくのもありかもしれません。
コメント