いまの環境は Amazon Linux なので、これを Amazon Linux2にしたい
AWSでWordPress環境を構築する:Amazon Linux2・・・Session Manager
https://note.com/hiroki_hachisuka/n/nc1d5342c3a9bAmazonLinux2 Nginx+PHP-fpm環境構築メモ
https://qiita.com/dora1341/items/777e8781bb7ddd03cb4d
いまの環境は Amazon Linux なので、これを Amazon Linux2にしたい
AWSでWordPress環境を構築する:Amazon Linux2・・・Session Manager
https://note.com/hiroki_hachisuka/n/nc1d5342c3a9bAmazonLinux2 Nginx+PHP-fpm環境構築メモ
https://qiita.com/dora1341/items/777e8781bb7ddd03cb4d
nginxのデフォルト(nginx.conf)に書いてあることがある
$ edit /etc/nginx/nginx.conf
location = / {
access_log off;
return 204;
break;
}
nginxがリクエストを処理できなかった場合、つまり、ドメインごとの.confを用意し忘れた場合などは、デフォルト(nginx.conf)が呼び出されて、結果、204を返す。
AWS EC2のロードバランサーのターゲットのヘルスチェックも、ここを通るので、204を返していると、unhealthになってしまう。ここは、200を返すべき。
ディレクトリのみの一覧を取得する
-maxdepth:階層指定
$ find /etc/ -type d
$ find /etc/ -maxdepth 1 -type d
ファイルのみの一覧を取得する
$ find /etc/ -type f
EC2インスタンスにSSHできないときって、今回は何の手違いか、.sshディレクトリごと削除しちゃって。
あーあ、自分は nginxユーザーのホームは /home/nginx だと思ってたんだけど、/var/www/vhosts だったんだ。
誰がこんなクソみたいな設定したんだ! オレだ!
authorized_keys がないと、SSHでログインできないじゃないか。
やること:
SSHできないEC2インスタンス(INS-A)からボリューム(VOL-A)を取り出し、別のEC2インスタンス(INS-B)からボリューム内のファイルの問題となっているファイルを修正する。
インスタンス(INS-A)を停止し、ボリューム(VOL-A)をデタッチする
「EC2 -> インスタンス」から、インスタンス(INS-A)を選択して停止
停止したインスタンス(INS-A)の「ルートデバイス」を選択
「EBS ID」をクリックすれば対象のボリューム(VOL-A)へ「EC2 -> ボリューム」から、対象のボリューム(VOL-A)を選んで「アクション -> ボリュームのデタッチ」
これで、インスタンス(INS-A)からボリューム(VOL-A)が取り除かれた。
別のインスタンス(INS-B)に取り外したボリューム(VOL-A)をアタッチ。
「EC2 -> ボリューム」から、先程取り除いたボリューム(VOL-A)を選択
「アクション -> ボリュームのアタッチ」空きドライブに割り当てる(デフォルトでは「/dev/sdf」)
これでボリューム(VOL-A)が別のECインスタンス(INS-B)にアタッチされた。
別のEC2インスタンス(INS-B)にログイン。
# df -h
# lsblk
# mkdir /mnt/vol01
# mount /dev/xvdf1 /mnt/vol01
# df -h
作業が終わったらアンマウント。
# umount /mnt/vol01
インスタンス(INS-B)からボリューム(VOL-A)をデタッチ
インスタンス(INS-A)にボリューム(VOL-A)をアタッチ(/dev/xvda)して起動
「EC2 -> ボリューム」からボリューム(VOL-A)を選択
「アクション -> ボリュームのアタッチ」を選択
デバイスの値を最初と同じ「/dev/xvda」にしてから「アタッチ」
DNSをいじらずに環境を整える(新しいサーバのIPを例えば、13.14.62.99とする)
Windowsの hosts を書き加える
edit C:\Windows\System32\drivers\etc\hosts
13.14.62.99 afa1986.jp
13.14.62.99 www.afa1986.jp
新しいサーバの /etc/hosts も書き加える
# e /etc/hosts
13.14.62.99 afa1986.jp
13.14.62.99 www.afa1986.jp
AWSの Route 53 で DNS レコードを作成する
example.com A ALIAS dualstack.elb.amazonaws.com.
example.com MX 10 sv999.xserver.jp.
example.com NS ns-649.awsdns-17.net. ns-1676.awsdns-17.co.uk.
example.com SOA ns-649.awsdns-17.net. awsdns-hostmaster.amazon.com.
example.com TXT “v=spf1 +a:sv999.xserver.jp +a:example.com +mx ~all”
mag.example.com A 15.11.15.11
mail.example.com A 15.11.15.11
www.example.com A ALIAS dualstack.elb.amazonaws.com.
AWSの Certificate Manager で SSL証明書を発行する
証明書のリクエスト > パブリック証明書のリクエスト
*.example.com
example.com (別名として*のないのも登録しておく)E メールの検証 (DNSの切り替えがまだで、DNS認証が使えないから)
AWSの EC2 のロードバランサーに SSL証明書を登録する
ロードバランサー > リスナー > HTTPS : 443 > 証明書の表示/編集 > ✙
example.com 追加
新しいサーバに WordPress をインストールする(要AMIMOTO)
# wp-setup example.com
ブラウザから example.com を開く
Instance ID を入力する
サイトのタイトル
ユーザー名
パスワード
メールアドレス
WordPressの管理画面にて
WordPress 5.4.2 が利用可能です! 今すぐ更新してください。
ダッシュボード > 更新 > テーマ
ダッシュボード > 更新 > プラグインの更新プラグイン > 新規追加 > Classic Editor
旧サイトから新サイトにファイルをコピーする
/wp-content/themes/example/ テーマ
/wp-content/uploads/ 画像
/wp-content/plugins/ プラグイン(active_pluginsを参考に必要なものだけ)
新サイト(できたてのWordPress)のダンプを取る
-c はカラム名を出力。
–skip-extended-insertは1行1insert文にするおまじない。
そうしないと、1つのINSERT文に詰めるだけ詰められて置換とかがやりづらい。
example.com の場合、[database-name]は、example_com となる。
# mysqldump -u root -p[password] -h localhost -c –skip-extended-insert [database-name] > [outfile-name.sql];
同じようにして旧サイト(現在のサイト)のダンプを取る
# mysqldump -u root -p[password] -h localhost -c –skip-extended-insert [database-name] > [outfile-name.sql];
旧サイトがマルチサイトだったときの作業(古い!)
wp_2_options というような修飾子が付くので、数字を取る
http://example.com/wp-content/uploads/sites/2/ を /wp-content/uploads/ にするwp_2_optionsの中の上書き項目
‘blogname’
‘blogdescription’
‘permalink_structure’
‘active_plugins’ これを書き換えるときはプラグインがphp7に対応しているか要注意
‘template’
‘stylesheet’
‘sidebars_widgets’
‘aioseop_options’
‘allowedthemes’
php7でエラーになるプラグイン
Slider Revolution revslider 最新版に入れ替えると直る
exec-php 変数にクラスの参照代入(=&)しているところをパッチ
設定の見直し
投稿設定
ディスカッション
パーマリンク設定
OKになったら、hostsを戻す
edit C:\Windows\System32\drivers\etc\hosts
#13.14.62.99 afa1986.jp
#13.14.62.99 www.afa1986.jp
新しいサーバの /etc/hosts も戻す
# e /etc/hosts
#13.14.62.99 afa1986.jp
#13.14.62.99 www.afa1986.jp
自分の環境(Windows)のクリア
Chrome
chrome://net-internals/#dns
ファイル名を指定して実行…Cmd
ipconfig /flushdns
nslookup example.com 1.1.1.1
ルーター(PR-S300NE)
詳細設定 > DNS設定
IPv6 IPoE通信優先機能 優先しない
これが一番効いた。DNSクエリを「IPv6 IPoE」が優先的に処理してしまうので、いつまで経ってもDNSが切り替わらなかった。