LoginSignup
4
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 化もできたらしようと思います。

4
1
0

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
  3. You can use dark theme
What you can do with signing up
4
1