サーバー
アニメに何の関係もない記事なので、ここを見てくださっている方には何の得にもならない誰得な記事で恐縮です。
ただ忘れないうちにメモしておきたかったのと、ひょっとすると億分の1くらいの確率の方々に有益かもしれないので公開しておきます。

そんなものは黙ってチラシの裏にでも書いてろよ!ヴォケっていうツッコミは無しの方向でひとつ・・・。


そんなわけで何をしたかと言うと、さくらインターネットのレンタルサーバーでwordpressをマルチサイトで3つのブログを運用していたものを、xserverというレンタルサーバーに同じドメインでマルチサイトを3つに分割する形で移行しました。

ドメインの浸透も終わったぽいので、その手順的なものとか、ハマったとことかの備忘録です。


■なぜサーバーを変更する必要があったのか。


前述の通り、これまでさくらサーバーを使っていました。
いつの頃からか記事を公開したり、更新したり、各種管理ページ内を遷移したりしたときにInternalServerError(500エラー)が多発するようになったんです。
エラーが出ても記事自体は普通に公開されてるし、あまり気に留めていなかったのですが、アニメ感想業界(?)のみんなでトラックバックしあうという素敵な文化を知って、同胞のみなさまにトラックバックを送信させていただくことが増えてきたあたりから、そのエラーの実害に気づき始めました。

そう、トラックバックがうまく送信されないんです。

というか、される時もあれば、されないときもあれば、されたと思ったら何個も重複して飛んでしまってたりと、挙動が一定じゃなく、かつトラックバックという性質上、こちらで確認が出来ないケースもあり、頭を悩ましていました。

トラックバックをもらったのに返せないのは最悪しょうがないで済むのですが、何個も飛んでしまってるのを目にしたときにはマジでいやな汗がいっぱいでました。
その原因を調べようとプログラム部分とかで出来る範囲で手を打ってみたものの、改善されたり再発したりと、QBばりに「わけがわからないよ」とひとりつぶやくしかできませんでした。

その後もいろいろ調べてたら、各種ブログサービスの性質とか相性とかも絡んできたり、言及リンクのありなしの設定があったり(ちなみにウチのワードプレスはトラックバックに関するそういう細かな設定は一切なく、受け付けるか否かしかありません(^^;))と、ちょっともうやりようが見つからず途方に暮れていたわけです。

で、更にサーバーの問題なのかな?的なところにまで及んで調べを進めていた時に、とある記事に出会いました。

私と同じさくらサーバーにワードプレスをインストールしてる方で、同じように500エラーが多発していると。
しかも、それをさくらサーバー側に問い合わせたら、どうやらメモリ不足が原因で内部処理エラーが出ているのだと。

まさにこれでした。
トラックバックに関してはもしかしたら関係ないのかもしれませんが、公開とか更新するタイミングでトラックバックも送信しているわけで、そこでエラーが起きるのが無関係なわけがないのではと思ってさくらサーバーとのさよならを決めました。

というわけで、前置き長くなりましたが、行った手順をば。

■サーバー移行の手順


1.新サーバーの申し込み

今回、ワードプレス運用で定評のある「xserver(エックスサーバー)」というレンタルサーバーを選びました。
さくらサーバーの倍額ですが、HDD容量は3倍になり、上記で問題化していたメモリ不足も他の利用者の方の声を聞いても発生していないっぽいので決めました。

2.新サーバーの各種設定

当然ですが、これまでのさくらサーバーとはお作法がいろいろと違います。
このお作法の違いが意外と盲点でした。
まず、一番うっかりしていたのが、試用期間中はメールアカウントが作成できないこと。
よく考えれば当たり前っちゃ当たり前なんですけど、知らなかったのでちょっと焦りました。
もう一つはサブドメインの管理方法。
好きなディレクトリを指定できないんですよね。
大きいところではこのふたつが実際に使ってみて知って注意が必要と思ったところです。

3.既存サーバーのワードプレス構成データ(DBデータ除く)のダウンロード

まったく同じ状態で移行したかったので、追加プラグインとか、カスタマイズしているPHPファイルとか、とにかくそのままごっそり丸ごとダウンロードしました。

4.新サーバーへのワードプレスのインストール

xserverは簡単インストール機能が付いていて、主要なCMSアプリケーションをさくっとインストールすることが出来ます。
その際に煩わしいデータベースの設定も自動でやってくれるので、かなり便利だし、めっちゃ速かったです。
ワードプレスのデータって、容量はそんなにないんですけど、数がめっちゃ多くて、FTPだともの結構時間がかかるのですが、ものの数秒で終わってびっくりしましたw

5.新サーバーへ旧サーバーのワードプレスデータを上書き

単純に上書きして旧サーバーと同じファイル構成にするのですが、ここで一つだけ注意点があって、データベースへのアクセス方法(DB名、ユーザー名、パスワードなど)が変わるので、wp-config.phpのみ新しいサーバーで作成されたものを使いました。
これは、wp-config.php内のデータベース関連項目のみ変更するでも良いかと思いますが、私の環境の場合は「マルチサイト環境」から「シングルサイト環境」へ変更したかったので、ここは新サーバーで作成された設定を使った次第です。

6.データベースのダンプデータのエクスポート(旧サーバー側)

一番のキモの部分ですね。データベースのデータとか聞くだけでやる気が萎えてしまうのをグッとこらえて奮い立たせ、いろんなサイトを参考にしつつ実行しました。
やってみれば全然簡単で、全く問題はありませんでした。
一応注意点としては、PHPmyAdminというmySQLへのアクセスツールがたいていのレンタルサーバーで提供されていると思うのですが、そこでエクスポートをする際に、「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT を追加」のチェックボックスを入れるのと、「ファイルに保存する」にチェックを入れて書き出すことです。
その他はデフォルトで問題ないと思います。

但し、このDBのダンプデータはブログが稼働している限りデータが更新されていきます。
トラックバックや、コメントなど、ユーザーアクションでどんどん変更されていくので、ドメインのDNSアドレスを変更する直前にもう一度やっておいた方が良いと思います。
この項ではとりあえず動作テスト用にこの時点のものを持って行きます。

7.データベースのダンプデータのインポート(新サーバー側)

6でエクスポートしたデータをインポートします。
新しく作成されているDBを選択して、インポートタブをクリック、ファイルを選択して「実行する」ボタンをクリックするだけです。
チェックボックス類はデフォルトで問題ありません。

ここまでで一応旧サーバーと新サーバーで同じ環境ができあがっているはず・・・です。

8.新サーバー側で動作テスト

実は最も苦労したのはここでした・・・(◞‸◟ㆀ)ショボン

まず躓いたのが、動作URLです。
今回はサーバー移行なので、ドメインは当たり前ですが旧サーバーの方に割り当てています。
ドメインのDNSを新サーバーのものに切り替えればいいわけですが、ちゃんと動作するのか心配ですよね。
特に、こういう動的な仕組みの場合はどっかに落とし穴があると見てまず間違いないです。

そうすると、ドメインはそのままにしつつ、新サーバーで確認する方法が必要になります。
xserverでは、動作URLというものを発行する機能が付いてます。
普通の静的なサイトなどはこの動作URLで動作確認が出来るのですが、今回の場合で言うと完全なリストアを行っているので、データベースのデータ自体がドメインからの絶対パス指定になってます。
6でエクスポートするSQLデータ内のドメインをすべて書き換えれば上記の一時発行URLでも動くのですが、それって動作テストの意味あんまりないですよね。。。
ちゃんと本番環境下で動作が確認できなければ意味がない。
サーバーのIPアドレス直でも動作せずで、ここでかなり躓きましたね。
って結局自分が無知なだけだったわけですが。

ここでいろいろグーグル先生のお世話になった結果、hostsファイルというものの存在を知りました。
このhostsファイルというのは、PC内部でのアドレス解決を行うファイルらしく、デフォルトの状態では特になんの設定もされていないので、ブラウザで打ち込んだURLがそのまま外部のネームサーバーを経由してインターネットに接続するわけですね。
それを外部のネームサーバーに渡す前にそれと同じことを内部でやっちまおうという仕組みのようです。

つまり、本来のドメインは旧サーバーへ接続するのですが、その前に違う向き先を設定するんですね。
hostsファイルを設定したPCのみで発動するルールを設けるということになります。

この存在を知って、設定したらあっさり普通に新サーバーで見ることができました。
すごい便利ですね。ちょっと感動してしまいました。

・・・と、ここまでは良かったんです。

ブログページ自体は完全に同じ状態に復元されてましたので、ャッタ─ヽ(*´v`*)ノ─ァァ!!ってなって管理画面にログインした瞬間、
Σ(Д゚;/)/…エエ!?と目を疑う画面がそこにありました。

全部がテキストリンクだけの超絶縦に長いページ・・・。
ワードプレスの管理画面って、本来はグラフィカルでちょっとオサレ(?)な感じのインターフェイスなんですけど、インターネットで初めて作られたページです!的な超そっけないテキストだけのページなんですよ。

機能的にも見た目的にも絶望的なその不可思議な画面が何をしても直らない。。。

ここでまたグーグル先生の出番。
でも、有益な情報は見つけられずまたも途方に暮れながら、とりあえず再インストールでもしてみるかと半ばやけくそにテキストだらけのめっちゃ使いにくい管理画面上から「ワードプレスを再インストール」を試してみたら、アラ不思議!何もなかったかのように復旧しました。。。

なんやねん!!(´・ω・`)

という擦った揉んだを経て、ようやく移行が完了しました。

9.ドメインのネームサーバーアドレス変更

ようやく仕上げです。
ドメインのネームサーバーを新サーバーのDNSアドレスへ変更。
浸透するまで少し時間がかかるので、読み込むごとに新サーバーを読んだり旧サーバーを読んだり、コロコロ変わるさまは見ててちょっと面白かったです。


■マルチサイトからシングルサイトにして


今回なんだかんだで一番懸念していたのは、マルチサイトで構築していたサイトデータをシングルサイト化してそのままリストアできるのか、というところ。
どんな不具合がはらんでいるのかわかりませんが、今のところ特に問題なく動いているように思います。

まだ何が起こるかわからないので、DBのその他のデータ(wp_2_とかwp_3_とかが頭に付いているデータ)はそのまま残してますが、折りを見て削除しつつ整理しようと思います。

また、プラグイン関係も、マルチサイト用プラグインとか不必要なものが出たり、逆にマルチサイトでは使えないものをやむなく代替で使ってたものを本来のもにリプレイスしたりと、微調整は適宜行いました。


以上が、サーバー移行までのざっくりした手順です。
まだ新サーバーを本格的に使えているわけではありませんが、少なくとも今のところエラー回数は0です。ヾ(*´∀`*)ノ
そして、サーバーレスポンスは格段に速くなりました。
いままでのもっさりした動きはワードプレス特有のものだと思っていたのですが、全然違うかったw
なので今のところは大満足です!

あとはトラックバックがきちんと動いてくれれば・・・(;´・ω・)