前回の続きです。
AWS で WordPress ブログを構築、ドメインを取得して公開するまで(Part 3)
http://murakamikoumuten.net でアクセスしたはずなのに、
なぜか Elastic IP の xip.io 付きアドレスに表示が変わってしまいます。
dig コマンド問題なし。
WHOIS 情報も正しく登録されていました。
つまり、ドメインは通っている。何かがリダイレクトしている?
と思って調べていたらこんな情報を見つけました。ありがとうございます。
ドメイン(or IP)が変わった場合のwordpressの設定変更 | ハックノート
https://hacknote.jp/archives/33107/
どうやら、MySQL にログインして設定を変える必要がありそうです。
事前準備
EC2 インスタンスが稼働していること。
WordPress の管理アカウントを持っていることが前提です。
料金
このセクションでは無料です。
EC2 に SSH ログインして MySQL DB を書き換える
※結果的に下記の方法は失敗しますが、ログイン方法は今後参考になりそうなので残しておきます。
Part 1 でダウンロードした「AMI.pem」の出番ですね。
キーペア情報を埋め込んで、SSH コマンドを実行します。
macbook:~ user$ ssh -i ~/AMI.pem ubuntu@ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com
The authenticity of host 'ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com (X.X.X.X)' can't be established.
ECDSA key fingerprint is SHA256:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com,X.X.X.X' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/user/AMI.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/user/AMI.pem": bad permissions
ubuntu@ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com: Permission denied (publickey).
macbook:~ user$ chmod 0600 ~/AMI.pem
macbook:~ user$ ssh -i ~/AMI.pem ubuntu@ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-1087-aws x86_64)
*** System restart required ***
___ _ _ _
| _ |_) |_ _ _ __ _ _ __ (_)
| _ \ | _| ' \/ _` | ' \| |
|___/_|\__|_|_|\__,_|_|_|_|_|
*** Welcome to the Bitnami WordPress Multisite 5.2.2-2 ***
*** Documentation: https://docs.bitnami.com/aws/apps/wordpress-multisite/ ***
*** https://docs.bitnami.com/aws/ ***
*** Bitnami Forums: https://community.bitnami.com/ ***
※ec2-X-X-X-X.ap-northeast-1.compute.amazonaws.com
パブリック DNS(IPv4)
ログインしようとすると、Permission denied (publickey). で弾かれますが
AMI.pem のパーミッション(0644)が緩すぎる!という警告なので chmod コマンドで締め付けてます。
無事ログインできたので、MySQL に突入したいと思います。
bitnami@ip-X-X-X-X:~$ mysql -u root -p
Enter password:
パスワードは WordPress の管理パスワードと同じでしたねー。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| bitnami_wordpress |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> use bitnami_wordpress;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> mysql> select * from wp_options where option_name = 'siteurl' or option_name = 'home';
+-----------+-------------+-----------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------+----------+
| 2 | home | http://X.X.X.X.xip.io | yes |
| 1 | siteurl | http://X.X.X.X.xip.io | yes |
+-----------+-------------+-----------------------+----------+
2 rows in set (0.00 sec)
mysql>
やはり、ここが原因のようです。
これをドメイン名に置き換えてみます。
mysql> update wp_options set option_value = 'http://murakamikoumuten.net' where option_name = 'siteurl' or option_name = 'home';
Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> select * from wp_options where option_name = 'siteurl' or option_name = 'home';
+-----------+-------------+-----------------------------+----------+
| option_id | option_name | option_value | autoload |
+-----------+-------------+-----------------------------+----------+
| 2 | home | http://murakamikoumuten.net | yes |
| 1 | siteurl | http://murakamikoumuten.net | yes |
+-----------+-------------+-----------------------------+----------+
2 rows in set (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> quit;
Bye
bitnami@ip-172-31-34-214:~$ exit
logout
うーん、やっぱりダメでした。
インスタンスを再起動すると戻ってしまいます。
ドメイン名から IP にリダイレクトしてしまうのを防ぐ方法(解決編)
で、結局は下記のページで紹介されているツール「Search Replace DB」で解決したという話でした。ありがとうございます。
AWS wordpressドメイン変更方法
https://qiita.com/mint/items/911693026fb2a5958263
あと、wp-config.php の89行目を少し修正してます。一応使ったコマンド残しておきます。
$ wget https://github.com/interconnectit/Search-Replace-DB/archive/master.zip
$ unzip master.zip
$ mv Search-Replace-DB-master apps/wordpress/htdocs
ここで http:// Elastic IP アドレス /Search-Replace-DB-master にアクセス。
IP アドレスで登録されている URL を
ドメイン名に一括置き換え(live run)しています。
置き換えが終わったら、rm コマンドで後片付けしないとリスクになります。
$ cd apps/wordpress/htdocs
$ rm -r Search-Replace-DB-master
$ cp wp-config.php wp-config.php.old
$ vi wp-config.php
89 | define( 'DOMAIN_CURRENT_SITE', 'murakamikoumuten.net' );
さて、次回はついに最終回。
お問い合わせフォームを機能させます。
ついでに、SSL 化もできたらしようと思います。