備忘用のメモです。
ほぼ全て、AMIMOTOのブログかFAQに書いてあります。。大事なことが書いてあるかもしれないので、ざっと読んでおいたほうが良さそうです。網元さん万歳!
AMIMOTO AMI インストール
PVM か HVM か忘れましたが高い方を選びましょう。t2.micro だと1年無料らしいのでそちらを選びました。
28ページくらいまで下記のとおりやればいい
http://www.slideshare.net/megumithemes/amimoto-40420065
nginx ユーザで EC2 にアクセスできるように
下記をやる
nginx ユーザとして ssh 接続できるようにするには? | 超高速 WordPress AMI 網元
コンテンツやプラグインの引っ越し
(略。やってないので分かりません)
AMIMOTO だと、wordpress のディレクトリのオーナーは nginx なので、nginx ユーザでファイルの移動とかをしたほうが良いでしょう。
Route53 (AWS のDNS)を使う
EIPは設定してあったので、下記の Route53の設定からやりました
Elastic IP アドレスの設定とRoute 53から独自ドメインの割当 | 超高速 WordPress AMI 網元
HTTPポートをあけておく
セキュリティグループからInbound HTTP:Anywhere に設定しておきます。
最初これをやっていなかったので、自分の家のルーターからは接続できたけど、、という状態になりサイトを10分アクセス不可にさせてしまいました(携帯網のアクセスで気づいた)。。。
ネームサーバの切り替えをする
いちおうここの手順を全部やりましたが、DNSサーバを切り替えたので最初のほうに書いてあるDNSサーバ設定(Aレコードの変更)は必要なかったと思います。
【WordPress】素人でも出来た!AWS EC2へのサーバー移行方法9 独自ドメインDNS設定 | 男子風呂(ぐ)
確認
dig コマンドで、設定が変わっていることを確認。ttl=300ms なのですぐ変わってます。
dig domainName
whois でも確認できるみたいです
whois domainName |grep "^Name Server"
ブラウザでアクセスすると、DNSのキャッシュが残っていることがあるようなので
chrome://net-internals/#dns
にアクセスして、clear host cache ボタンを押せばOKです
番外編1
朝、Wordpress のページも管理画面もアクセスできなくなっていました。
wp-cli を使おうと思ってあくせくしてたら、HTTP 500 Internal Server Error が出ていて、wp list plugins で使っているテーマの functions.php でエラーが出てたのでその行をコメントアウトしたらみんな動くようになりました。
テーマの設定1つで管理画面も動かなくなるWordpress っていったい。。。
番外編2
本番EC2 からテスト用サーバをつくる
AWSでEC2のインスタンスをコピーし、サーバーのバックアップを簡単におこなう方法 | 株式会社LIG
一般的な create Image -> Launch の手順でつくりました。
セキュリティグループで Anywhere HTTP の設定を削っておくことと、
EIP を新規作成してassociate することを忘れずに。
あと、ドメイン名が書いてある設定も変更する必要があったので、下記に書いてあるようにphpMyAdmin からいじくろうとしたのですが、なぜかphpMyAdmin が使えなくなっていたので同じページに書いてある
wp search-replace exmaple.com 新規作成したEC2のpublic_DNS
を実行して書き換えました。副作用があるかもしれないので、dry-runしてからやったほうが良いでしょう。あと、キャッシュが効いてしまってたので, wp-contents/cache 以下のファイルを全消ししました。
網元でのデータベース操作 | 超高速 WordPress AMI 網元
番外編3
サブディレクトリに WordPress をインストールし、ルートアクセス時にindex.html に飛ばす
以下のAMIMOTOブログをほぼそのまま実行します
サブディレクトリへのWPインストール
今回、仮想ホストはつくっていない前提でサブディレクトリだけ作ってインストールしました。最新の網元だと、/usr/local/bin/wp-setup が無かった(解消されました!)ので、1つ前のバージョンの網元でやっています。
最後にnginx の設定ファイルで
location = / {
index index.html
}
を location / {} の前に追加してやれば、ルートアクセス時に index.htmlにアクセスさせることができます。