マルチサイトWordPress(このブログ)をドメインキングからAWS(網元)に引越し、メールも使えるようにするまでにやったことまとめ

マルチサイトWordPress(このブログ)をドメインキングからAWS(網元)に引越し、メールも使えるようにするまでにやったことまとめ

2014年2月4日

2010年10月に初めて自分でサーバと独自ドメインを借りてWordPressで個人ブログをはじめ、早3年と4ヶ月。
初めてさんには敷居も低くてお世話になったドメインキングさんですが、定期的に「容量がもうないよ!」というお叱りのメールをいただいたり、サイトがおちたら教えてくれる「StatusCake」というサービスからも頻繁に通知をもらうようになりまして…そろそろ潮時かなと思いながら、数ヶ月放置してきました。
しかし、そろそろ重い腰を上げ、休日を利用してお引っ越ししました。

最近は普通の共用サーバに飽きてしまい、また多少コマンド操作にも慣れてきたので、移行先はAWSにしました。
さくらのVPSとも迷ったんですが、環境構築にこだわる時間もないし、網元でサクッとやってしまおうという考え。

いろんな人がAWSでWordPressを使うまでのブログを書いているので、わざわざ自分が書くこともないかなとは思ったんですが。。。
それでも途中で詰まった箇所がいくつもありまして。
結局かなりいろんな記事を参考にしたので、感謝を込めてまとめることにしました。

手順一覧(もくじ)

  1. AWSアカウント取得~「網元」設定
  2. hosts設定して、環境構築をスムーズに
  3. WordPressインストールし、マルチサイト化する
  4. SFTPでファイルをアップするため、nginxユーザーでSSHを使えるようにする
  5. 記事をインポートする
  6. ドメイン移管 → DNS切り替え
  7. メールサーバ立てるのめんどい… → Microsoft Outlook.comをメールサーバとして使う

1. AWSアカウント取得~「網元」設定

基本的にはGatespaceさんの記事のとおりに進めていけば完了します。
自分の場合はアカウント取得済み、鍵ペアも普段から使ってるのでかなりすぐ終わりました。

あえていえばいざログインする際、ユーザー名が分からずに迷ったのですが、ec2-userというお決まりのネームになるというのを把握してなかっただけでした。
AWS公式のドキュメントページもあるので必要に応じて参照しましょう。自分はWindows+WinSCP+PuTTYという環境なのでこのページを参考にしました。

WinSCPを使いec2-userでFTPS接続し、とりあえずおなじみのファイル群があることだけ確認。

2. hosts設定して、環境構築をスムーズに

ドメイン変更の手間を省くため、あらかじめhostsファイルを書き換え、DNS切り替え前でも自分のPCだけmypacecreator.netがAWS側を見るようにしたうえで作業を進めました。

hosts書き換え??って人はこちらを参考に。

Windowsの方はHosts File Managerとか、Macの方はHosterHosts.prefpaneなどフリーソフトがあるのでおすすめ。

3. WordPressインストールし、マルチサイト化する

独自ドメインにアクセスすれば、いつものインストール画面が出ます。
そしていつものようにマルチサイト化して、必要な子ブログを作成。

しかし、子ブログのダッシュボードに行ってもnginxの404が出て子ブログにアクセスできません。
どうやら網元の設定ファイルをいじる必要があるようです。

前半の内容はとりあえずすっ飛ばして、ec2-userでSSH接続して
[sh]sudo vi /etc/nginx/conf.d/default.backend.conf[/sh]
を叩き、コメントアウトの位置を1ヶ所だけ変えました。:wqで保存して、念のため
[sh]sudo restart nginx[/sh]
で再起動をかけたらちゃんと子ブログにアクセスできました。

##
ちなみにnginxなので、マルチサイト化してもパーマリンクを変えても.htaccessは不要です!

4. SFTPでファイルをアップするため、nginxユーザーでSSHを使えるようにする

旧環境からバックアップしたファイル群、テーマやプラグインなどをごそっとUPしたいのですが、ec2-userユーザーだと権限ないよってエラーが出ます。
そこでnginxユーザーで接続できるようにします。

上から順番にコメンドを叩いていけばOKなんですが、sudo /sbin/service php-fpm stopを打つと[失敗]の表示が。
他のコマンドは通ったのでまいっか、と思いnginxユーザーでSFTP接続を試みるも、やっぱダメ。
やはりphp-fpmを止めてから、「sudo /usr/sbin/usermod -d /var/www/vhosts nginx」を打たなければいけないようです。

php-fpm stop [失敗]への対応はこちらの記事がズバリでした。

ps aux | grep php で php-fpm の master プロセスを見て kill 1234 みたいな感じで殺したら stop とか start がうまく行く感じに

ということで、コマンドで
[sh]
sudo /sbin/service monit stop
sudo /sbin/service nginx stop
sudo ps aux | grep php
sudo kill 1234(数字はmasterプロセスに表示されたものを打ち込み)
sudo /usr/sbin/usermod -d /var/www/vhosts nginx
sudo /sbin/service php-fpm start
sudo /sbin/service nginx start
sudo /sbin/service monit start
[/sh]

の順に実行し、その後SFTPでユーザー名nginxで試してみたら、無事接続できました。

5. 記事をインポートする

今回、プラグインのリストラもしたかったので、DBごと移すことはせず、投稿のエクスポート→インポートで移行しました。
通常のWordPress Importerプラグインで、URLそのまま問題なく移行できます。
ただし

  1. あらかじめメディアのサイズ設定を元の環境と同じにしておく
  2. Download and import file attachments にチェック
  3. 記事内にiframeやscriptや、ソースコードがある場合は消えてしまう可能性があるので確認。
    未然に防ぐには利用中のテーマのfunctions.phpに以下の記述を入れておく。

    削除させない要素は複数指定できるので、よろしければGistにメモったのを参考にしてください。

この3点を忘れずに。

自分は忘れててインポートしてしまったので、何度かインポートをやり直しました。
iframeやソースコードの消えちゃった箇所はそんなに多くなかったので手動で直しました。

6. ドメイン移管 → DNS切り替え

ドメインキングは次回更新しないことにしたので、ドメインも外に出すことにしました。今までお世話になりました。
移管先は既に利用しているムームードメインに。

ちなみに日曜の夕方にドメイン解約手続きと移管希望のメールを出して、翌月曜の18時過ぎにAuthCodeが届きました。その後19:30過ぎにムームードメイン側で移管申請を行い、明日明後日には完了するかな、
と思っていたら、なんと私としたことが、ドメインの連絡先メールアドレスが、今は亡きauone.jpのメールアドレスになっており、レジストラからのメールを受け取れないという致命的なことに。。。
水曜夜にそのことに気付き、ドメインキングの問い合わせフォームより連絡。

ドメインのメールアドレス変更作業後、Whoisに反映される前に移管申請してしまうと、
また死んでるアドレスにメールが飛んでしまうので、少し待つ必要がありました。
私の場合なぜかWhoisへの反映がちょっと遅くて3日くらい待ちましたが、早ければ数分後に変わります。
ドメイン連絡先が受信可能なアドレスになったらようやく移管手続き再開。

移管申請後、夜中でしたが1時間もしないうちにムームー、ドメインキングからそれぞれ移管承認を求めるメールが届き、朝起きたら移管完了してました。
ムームーにお金払って、晴れて移管完了。

ここまでで8日半経っています。結構かかってしまった!
みなさんは移管前にドメイン連絡先の確認をお忘れなく!

今後の柔軟性を考え、DNSはムームーのものではなく、AWS側のもの(Route53)を使うことにしました。
ここでもGatespaceさんの記事を参考に。

7. メールサーバ立てるのめんどい…→ Microsoft Outlook.comをメールサーバとして使う

【2015.11.23追記:下記の機能は2014 年 7 月に廃止されました(→詳しくはこちら)。現在、Microsoftで独自ドメインのメールアカウントを作成するには、Office 365の契約が必要です。】

いままでドメインキングのコンパネでアカウント作って独自ドメインのメールアドレスを使っていたのですが、サーバ側では受信メールをGmailに転送することしかしてなくて、SMTP、IMAPはGmailのものを使ってました。
なのでわざわざAWSにメールサーバ立てるのも面倒だしコスト的にもちょっとなぁ…
でも、通常のGmailじゃ独自ドメインのメールアカウント増やせないし、Google Appsだとアドレス2つ作ったら月額1,000円以上かかるなぁ…
と悩んでいたら、MicrosoftのOutlook.com(Windows Live Admin Center)で以前の無料版Google Appsみたいなことができるらしい!と知りました。

今回はムームーDNSじゃなくAWSのRoute53を使いたいので、こちらを参考にMX、TXTレコードを設定。

そこからさらにGmailに転送かければ今まで通りの使い勝手なんですが、せっかくなのでOutlook.comのIMAPを使って、PCとiPhoneのメーラーに送受信設定しました。

IMAPサーバなどはこちらに書いてあります。

このドメインに届くメールは登録したサービスからのお知らせやメルマガがほとんどなので、Gmailの容量節約の意味でも役に立つかなと。

ここまで設定できたら完璧だと思います。
我ながら満足です。このブログもちょっとは軽くなるかな。