LoginSignup
1

More than 3 years have passed since last update.

AWS で WordPress ブログを構築、ドメインを取得して公開するまで(Part 4)

Last updated at Posted at 2019-08-12

前回の続きです。
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 化もできたらしようと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1