WordPressブログのレンタルサーバーを移行

16年以上前本ブログを始める前から借りていた格安レンタルサーバーですが、最近はブログ記事へのアクセスでも503エラーを頻発する(一定割合でアクセス制限されている感じ)ようになり、先日は8時間くらいアクセスできないことがありました。問い合わせても負荷が高いと言われるだけで(以前よりかなり負荷は減っていると思うけど…)解決しなそうなので、重い腰を上げて、この夏休みの間にレンタルサーバーを変更することにしました。独自ドメイン取っているのでうまくすればURL等そのまま移行できるはずなので。

レンタルサーバーは色々ありますが、料金や機能の比較や提供されている情報量などを見て、エックスサーバーのスタンダード(旧X10)にすることにしました。9/9まで新規契約20%オフで月額792円(3年契約時)だったので、コスパ高そうなのもポイント。お試し無料期間が10日間あるので、上手くいかなければ解約もできますしね。

ということで、WordPressで構築してSSL対応していたブログを移行するメモを書いておきます。公式で提供されている「WordPressの移転について」を参考にしましたが、SSLはうまく引き継げるの?など心配しながら実行したので。

申し込みはこちらからWebで簡単にできます。支払い情報は本契約時でOK。完了すると「サーバーアカウント設定完了」メールが届きます。このメールにサーバーパスワードなどが記載されています。こちらのサーバーID/パスワードまたは、登録したXserverアカウントID/パスワードでサーバーパネルにログインします。

今までと同じ独自ドメインで運用するため、まずはサーバーパネルの「ドメイン設定」の「ドメイン設定追加」でドメイン名を設定します。

XserverにはWordPress簡単移行というサービスもあるので試してみました。MovableTypeから移行した名残りで色々いじっていたりしているので、そう簡単にはいかないだろうなと想いつつ。

なぜかダッシュボードにログインできなかったり、そもそも移行元が不安定だったりするので、簡単移行はあきらめ、マニュアルで実施することに。

次はデータベースの作成です。「MySQL設定」の「MySQL追加」でデータベース名を登録します。

さらに「MySQLユーザ追加」でMySQLユーザIDパスワードを登録します。

そして「MySQL一覧」で「アクセス権未所有ユーザ」にある設定したMySQLユーザIDを選んで追加することで「アクセス権所有ユーザ」に登録されます。

データベースの内容は、phpmyadminで移行元でエクスポートしたデータをインポートすれば良いのですが、移行元のエクスポートがなかなか苦戦しました。phpmyadminでエクスポートするとなぜかエラーになってしまうので、sshでサーバにログインしてコマンドラインで下記のような感じでエクスポートファイルを作成しました。

mysqldump -h localhost -u [user_name] -p --add-drop-table [db_name] --no-tablespaces > [db_file.sql]

Webサーバー内のファイルの移行もドメイン名フォルダのpublic_html配下にファイルを転送すれば良いのですが、ブラウザで簡単にアクセスできるファイルマネージャは1GB以下のファイルしかアップロードできないようなので、FTPソフトでバックアップからアップロードすることに。

サブFTPアカウントは無料期間は設定できないようですが、初期FTPアカウントでFTPが使えます。
サブFTPアカウント設定」の「FTPソフト設定」に設定内容が載っているので、これをFTPソフトに設定すれば、簡単にアップロードができるようになります。FTPパスワードはメールに載っていたサーバーパスワードです。FTPソフトはMacのCyberduckを使いました。

さらに細かい変更などはコマンドラインで行いたいので、SSHが利用できるように。
SSH設定」で状態をONにするに設定。
公開鍵認証用鍵ペアの生成」でパスフレーズを入れて秘密鍵がダウンロードされるので、これを使ってSSHします。Macの場合、コマンドラインで下記のような感じでアクセス。パーミッションやファイルの編集などして色々整理。

ssh -l [user_name] -i [key_file] [server_name] -p [port_no]

WordPressのwp-config.phpファイルの中身はMySQL設定で設定したデータベース名、ユーザID、パスワード、ホスト名に書き換える必要があります

SSLがスムーズに移行できるようにSSL設定を行います。
独自ドメインを別のサーバーで管理している場合、「SSL設定」の「独自SSL設定追加」を開くと、「DNS参照先サーバーが当サーバーではありませんでした。」と言われますが、「外部サーバーでのWeb認証」か「外部ネームサーバーでのDNS認証」を行うことで、独自SSLを事前に設定できます。

「外部サーバーでのWeb認証」はなぜか配置したファイルが参照できない状態になったので、外部ネームサーバーでのDNS認証」を行いました。

ちょっと固定ドメイン管理元のDNS設定の方法がわかりにくかったですが、例を見て設定してみたらうまくいきました。

DNS設定すると「反映待ち」になるので、しばらくして再確認すると完了していました。
このあと、/etc/hostsで固定ドメインのIPアドレスを設定(Macの場合)して、動作確認できます。
エラーログを見ると、一部プラグインがエラーになっていたので、再インストールしたり。

無料でWAF(Web Application Firewall)設定もできます。セキュリティ上ONにしておいた方が良いので、ONにしました。簡単で良いですね。

問題なくなれば、固定ドメイン管理元のネームサーバー設定を指定のXserverのものに変更して切り替えます。
ちなみにこの設定の反映(浸透)には結構時間がかかりますので、場所によって旧サーバーへのアクセスになったり、新サーバーへのアクセスになったりします。うちの使っているISPに反映されるまで12時間以上かかりました。
浸透すれば新たなサーバーへの移行が完了です。もっとトラブルが発生するかと思っていましたが、意外にすんなり移行できました。

Blog読み込み時のエラーが出なくなり、アクセスも高速になったので満足ですが、さらに高速化する設定がいくつかあります。

ということで、この記事が見えるということは新サーバーが見えていますので、何か不具合等発見したら教えてもらえると嬉しいです。

saya: