サーバーを引越ししました。参考にしたサイトとトラブル対処法など。

@管理者, www

このたび、間借りしているサーバーを引っ越すことにしました。約11年間お世話になったusamimi.info様、ありがとうございました。HTMLを手打ちしていたしょぼいウェブサイトから始まり、sbとその後継のserene bachというブログシステムの導入、WordPressへの移行など、様々な勉強と経験をさせていただきました。新サイトの運営が軌道に乗るまで、今しばらくご厄介になります。

以下では、新サーバーに移行するまでに参考にしたサイトを紹介します。旧サイトのWordPressを基本的にそのまま新サイトに持っていくことを目的としています。

・サーバー選定
無料レンタルサーバーのまとめ 2016年度版
WordPressが使える無料のサーバをいろいろ試してみた – でじたるのもり

これらで紹介されていたレンタルサーバーの中から、Lv9Hostingerなどを試し、中でも小生にとっていちばんしっくりきたのがRental Orbit Spaceでした。

・WordPressのデータを旧サーバーからバックアップ
WordPress初心者でも簡単にできるバックアップ方法

・新サーバーにWordPressをインストール
無料で自分のホームページを持とう!(WordPress) « OpenGameSeeker
※Lv9へのインストール方法が記載されていますが、基本的な流れはどのサーバーでも同じです。

・旧サイトからバックアップしたWordPressのデータを新サイトへ移行
バックアップデータを使ってWordPressを復旧・移行する方法

基本的にはここまでの作業で問題なく移行できるはずなのですが・・・そこはそれ、いろいろとトラブルもありました。旧サイトからのバックアップや新サーバーへWordPressのインストールはもう問題なく完了するのですが、やはりデータの移行でいろいろな問題が露呈します。

トラブル1:WordPress Importerでエラーが出る!
WordPress Importerはその名のとおり、データを戻すためのプラグインです。データといっても、画像データや画面テーマなどはFTPなどでサーバーに直接コピーするので問題ないのですが、このツールで戻すのは投稿やコメントなどに加え、たぶん画像へのリンクというか、情報というか、要するにデータベース部分の情報が入っているのでは、と思います。
まずは基本にのっとり、これを使ってデータを戻そうとするのですが・・・メッセージも何も出ず途中で止まってるっぽい?画像データも投稿も空っぽのまま・・・なぜ!?

解決法1:Attachment Importerを使ってインポートする
WordPress Importerでエラーが出た場合の対処方法
どうやらWordPress Importerはクソ公式で推奨されているのにも関わらず動作に不安があるらしいので、別のツールを使用して復旧を試みてみます。

結果がどうなったかというと・・・ダメでした!やはり途中で止まってしまいます。ただこちらのツールを使った場合はエラーメッセージが表示されました。なになに・・・?

The program could not run. Check the error log below or your JavaScript console for more information
(中略)
(画像ファイルのファイル名) could not be uploaded because of an error. (import_file_error: Remote server did not respond)
(中略)
There was an error connecting to the server.

どうやらサーバーの接続エラーらしい?サーバーのエラーといっても、小生のとった手順や小生のデータに問題があるのかもしれない。ということは、別のサーバーで試してみるのが問題解決の近道かも?

ということで、新たにRental Orbit Spaceを借りて移行を試みたところ、データの移行はうまくいきました!同じ手順でやったのに・・・先に試したサーバーに何らかの機能不足があったということなのでしょう。WordPressの設定やプラグインの設定なども再度行い、サイトの見た目も前と同じようになりました。ところが・・・!

トラブル2:記事に画像が表示されない!
ss_not_1
記事の表示を確認してみると、なんと!画像へのリンクが切れてしまっています!どういうこと!?ここまでやったのにどうして!?

落ち着いて、記事のソースを確認してみます。すると・・・

画像へのリンクURLのドメインが、すべて旧サイトのusamimi.infoになっていました。usamimi.infoにはすでに画像データは存在しないので、存在しない画像は表示できない、というわけです。

よくよく調べてみると、旧サイトからデータをバックアップした際、記事なんかのデータを収めたxmlファイル内の画像リンクの記述が、すべて旧サイトのアドレスになっていました。それを、新サイトのWordPressはそのまま読み取っているということなのでしょう。そのあたりって、自動的に新サイトのWordPressがよろしく調整してくれないのですね・・・ということは、xmlファイルに記述された旧ドメイン画像リンクをすべて新ドメインに書き換えます。xmlをテキストエディタで開いて編集するのですが、一つ一つ手書きで修正するのは面倒だし間違いのもとですので、「置換」機能を使ってスマートに置き換えます。これに似た作業をSereneBachからWordPressに移行する際も行いましたね。

WordPress始めました!(Serene Bachからの移行メモ) – HERMITCRAB

わあ!この時の記事はかなり丁寧に書いていますね。それに比べて今回の記事の適当なこと・・・

サイト移転時にWordPress記事をXML形式でエクスポート&インポートする手順 – ネタワン

あとでこんな記事を見つけました。URLが変更になる場合は、やはりプラグインを使うとか自力でxmlファイルを書き換えるとかしないといけないようです。逆に言うと、WordPressのデフォルト機能は、同じサーバー内での移行、というかバックアップと復旧にしか対応していないということでしょうか。

今回、様々な試行錯誤をしながらようやく移行が完了しました。移行をする際は、移行先がクリーンな状態であることが肝要です。移行に失敗、別の方法で再度チャレンジ、失敗、チャレンジ・・・と繰り返していくと、不要なデータがどんどん溜まっていったり、同じファイルが複数存在してしまったりと様々なトラブルが想定されます。とはいっても、サーバーのデータを毎回全削除して再度コピーして・・・なんてしていると時間がかかって仕方ないし、なによりサーバーに余計な負担をかける恐れがあります。そこで使用するのがWordPress Database Resetという読んで字の如くのプラグインです。

WordPressのデータを初期化するプラグイン「WordPress Database Reset」の使い方

すべてを初期化するとユーザーの設定(ニックネームなど)とテーマの設定なども再度やり直すことになりますので、wp_users(ユーザーのデータ)、wp_usermeta(wp_usersに付随するデータ)、wp_options(設定のデータ)を残して、それ以外を初期化するようにします。もしそれらを設定する前なら、何も考えずにすべてを初期化するのがよいでしょう。

そんなこんなで、新サーバーへの移行はたぶん完了しました。とはいえ想定外のトラブルがこれから出てくるかもしれませんので注意深く様子をみたいと思います。

@管理者, www

Posted by Hermitcrab