でこにく さんのサーバ移転作業を担当させて頂きました
以前、お友達のでこいさん(@decoy_284)が運営している、でこにくさんのサーバで異常負荷が発生し、調査させて頂いていたのですが、サーバをmixhostからXサーバーへの移転を希望されていましたので、移行作業も担当させて頂きました。
WordPressの移行は前より何回かやっていましたが、今回改めて作業内容をまとめてみます。
作業概要は上図の通りで、mixhostで動作しているページをそのままエックスサーバーに、できる限りダウンタイムが0になるようにサーバーを移転することとなりました。
作業全体の流れ
作業の流れは上図の通りで、旧サーバーでのバックアップを行い、新サーバーの環境を用意していくという物。
移転作業中はDNSのAレコードを変更しないので、旧サーバーを解約しなければ移行作業中にサイトに繋がらなくなる、といった事は発生しません。
また、新サーバー側で何か問題が発生したとしても、この時点であればサイトへの影響は何ら発生しないため、移転作業の際は必ずこのような構成を取ります。
移転前準備
移転に必要となってくる物が、WEBサーバー上のファイルと「データベースのダンプファイル」となります。時々、WordPressの移転はWEBサーバーのWEBルートの中身だけを移せば大丈夫、と勘違いされる方もいらっしゃいますが、WordPressはMySQLなどのデータベースに密接して動いており、投稿データなどはデータベースに保存されているため、移転するにはデータベースのダンプファイルも必須です。
サーバー移転を誰かに依頼する場合でも、移転に必要となるファイルのバックアップは、自分自身で行うことが望ましいのですが、サーバーのことはちょっとよく分からない・・・という方は、WordPressのバックアッププラグインーBackWPup」を使えば簡単にバックアップを取ることができます。
BackWPupをインストールすると、WordPress管理画面のサイドバーに「BackWPup」が追加されるので、そこにマウスカーソルをあわせて「新規ジョブを追加」をクリックします。
すると上記のような画面が表示されますので、「データベースのバックアップ」と「ファイルのバックアップ」にチェックが入っていることを確認します。
画面をスクロールすると、「ジョブの伝送先」という欄が表示されますので、「Dropbox にバックアップ」にチェックを入れます。
画面一番上に戻ると、「宛先:Dropbox」といタブが表示されますのでクリックします。
すると上図のような設定画面が表示されますので、赤枠内の「Dropbox のアプリ認証コードを取得」をクリックします。
Dropboxへのログインが要求されますので、自分のアカウントでログインします。
BackWPipAppが、Dropboxへのアクセスをリクエストしてきますので、「許可」をクリックします。
するとコードが発行されますので、このコードをコピーします。
コードのコピーが完了したら再度BackWPup画面に戻り、上図赤枠内のテキストボックスに先ほどコピーしたコードを貼り付け、「変更を保存」ボタンをクリックします。
問題無ければ上図のように「認証済み!」と表示されますので、そのまま「今すぐ実行」をクリックします。
上図の通りジョブが正常に完了したらバックアップは完了です。Dropboxにアクセスして、転送されたバックアップファイルをダウンロードしておきます。
移転先の設定
ここからは移転先のサーバーであるエックスサーバーでの作業になります。
MySQLで作業を行いますので、まず作業用のユーザーを作成し、その後実際にWordPressで利用するMySQLユーザーの作成を行います。
続いてMySQLのデータベース作成を行い、作業用のユーザーとWordPressで利用するMySQLユーザーに権限を付与します。
ここまで完了したら、SSHでエックスサーバーに接続し、WEBルートの準備を行います。
移転作業
SSHでエックスサーバーに接続するついでに、WinSCPなどを使ってSCPでエックスサーバーに接続し、先ほどDropboxからダウンロードしたバックアップファイルを転送します。
転送後、まず最初にダンプしたデータベース(SQLファイル)をエックスサーバー上のデータベースへリストアします。
データベースのリストアが完了したら、今度はBackWPupで取得したバックアップファイルをエックスサーバーのWEBルートへ展開します。
展開後、wp-config.phpを編集し、接続先のデータベース名、データベース接続ユーザー、データベース接続パスワード、データベースのホストアドレスを入力します。
テスト
ここまで完了したら、移転先サーバーが正常に動作するかテストを行います。テストを行う際は、DNSのAレコードを編集するのではなく、作業用PCのhostsファイルを書き換え、接続先を無理矢理変更します。
ブラウザでアクセスを行い、ページが正常に表示できることを確認したら管理画面にアクセスし、記事の作成ができるか、画像のアップロードができるか、プラグインの追加削除ができるかなどを確認します。
移転
ここまで完了したらDNSのAレコードをmixhostからエックスサーバーへ変更します。
Aレコード更新後、キチンと新サーバーに接続できているか確認したら、WordPressの管理画面にアクセスし、設定 -> パーマリンクの設定を開き、何も編集せずに「変更を保存」をクリックします。
ここまでの手順を踏むことで、ダウンタイムほぼ0で新サーバーへ移転することが出来ます。
まとめ
移転手順は各ホスティングサービスによって若干操作方法が違うため、詳しくは掲載しませんでしたが、サーバーの移転を行うとなると、だいたいこのような手順を踏みます。
このレンタルホスティングサービス当初は聞こえの良いキャッチフレーズを見て契約した物の、実際使って見ると勝手にアカウントがサスペンドされたり、よくサーバーが落ちるから嫌だな、移転したいなと思っても、今回の記事で扱ったような知識が要求されるため、ハードルが非常に高くなります。
特にどの業者がダメだとか詳しくは書きませんが、今回でこにくさんが移転されたエックスサーバーは、初期費用などが高いもののサービス自体はしっかりしているなぁと作業しながら思っていました。
今回でこいさんも、サーバー移転したいけど自分でやるにはちょっと難しい・・・とおっしゃっていたのでお手伝いさせて頂いた次第です。これででこにくさんが安定して、そして安定して運用できれば幸いです。
僕の知り合いであればサーバーの移転など相談に乗りますので、Twitterなりでお気軽にお声がけ頂ければと思います。今回作業にかかった時間はだいたい1時間くらいでした。
少し話題が変わりますが、現在WordPressの運用方法等をまとめた同人誌の執筆をしており、完成しましたらまた当ブログでご紹介させて頂こうと考えています。