AWSでWordPressを構築する

今回はAWSにWordPressを構築していく。以下の作業が完了していることが前提。

[・Webサーバー構築](https://qiita.com/r_saiki/items/cc1d7ed9864ce07501f2)
[・AWSでDBサーバーを作成する](https://qiita.com/r_saiki/items/278ae0765f30684ed860)

#WordPress用のDBを作成
RDSにWordPress用のDBを作成する。EC2(Webサーバー)とRDS(DBサーバー)を起動したら、SSH接続して、EC2からRDSに接続する。

~~~:UbuntuからEC2にSSH接続してDBに接続
$ sudo ssh -i /home/r-saiki/ダウンロード/aws-key-webserver.pem ec2-user@18.177.125.119
[sudo] r-saiki のパスワード: 
Last login: Tue May 19 11:09:37 2020 from fs96f9c6f1.tkyc217.ap.nuro.jp

       __|  __|_  )
       _|  (     /   Amazon Linux 2 AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-2/
3 package(s) needed for security, out of 8 available
Run "sudo yum update" to apply all updates.

#DB接続
[ec2-user@ip-10-0-10-10 ~]$ mysql -h database-web.cnxaaqg6tow9.ap-northeast-1.rds.amazonaws.com -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>
~~~

##データベース作成
CREATEコマンドでWordPress用のデータベースを作成する。
`DEFAULT CHARACTER SET`でデフォルトの文字コードをutf8、`COLLATE`で比較文字コードをutf8で多言語対応の大文字小文字区別なしに指定。

~~~
MySQL [(none)]> CREATE DATABASE aws_wordpress_practice DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected, 2 warnings (0.01 sec)

MySQL [(none)]> SHOW DATABASES;
+------------------------+
| Database               |
+------------------------+
| aws_wordpress_practice |
| information_schema     |
| mysql                  |
| performance_schema     |
+------------------------+
4 rows in set (0.01 sec)
~~~

##ユーザー作成
次にWordPress用のユーザーを作成する。@より後ろはホスト。%はどのホストでもアクセスできるという意味。

~~~
MySQL [(none)]> CREATE USER 'aws_user'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)
~~~

作成したユーザーにWordPress用のデータベースにアクセスできる権限を与える。

~~~
MySQL [(none)]> GRANT ALL ON aws_wordpress_practice.* TO 'aws_user'@'%';
Query OK, 0 rows affected (0.00 sec)
~~~

`FLUSH PRIVILEGES`でテーブルを再ロードし、ユーザーが追加されたかを確認。

~~~
MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user             | host      |
+------------------+-----------+
| aws_user         | %         |
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| rdsadmin         | localhost |
+------------------+-----------+
6 rows in set (0.00 sec)
~~~

作成したユーザーでログインできるかを確認。

~~~
MySQL [(none)]> exit;
Bye
[ec2-user@ip-10-0-10-10 ~]$ mysql -h database-web.cnxaaqg6tow9.ap-northeast-1.rds.amazonaws.com -u aws_user -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 8.0.17 Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 
~~~

#WordPressのインストール
次にWordPressをインストールして、Apacheが参照できるように設定する。
`amazon-linux-extras`コマンドを使ってphpをダウンロードする。その後に`php php-mbstring`をインストール。

~~~
[ec2-user@ip-10-0-10-10 ~]$ sudo amazon-linux-extras install -y php7.2
[ec2-user@ip-10-0-10-10 ~]$ sudo yum install -y php php-mbstring
~~~

WordPressの最新版をダウンロードして解凍する。

~~~
[ec2-user@ip-10-0-10-10 ~]$  wget https://ja.wordpress.org/latest-ja.tar.gz
[ec2-user@ip-10-0-10-10 ~]$ ls
latest-ja.tar.gz
[ec2-user@ip-10-0-10-10 ~]$ tar xzvf latest-ja.tar.gz
[ec2-user@ip-10-0-10-10 ~]$ ls
latest-ja.tar.gz  wordpress
~~~

ApacheがWordPressを参照できるように、/var/www/html/以下にファイルをコピーし、権限をapacheに変更する。

~~~
[ec2-user@ip-10-0-10-10 ~]$ cd wordpress
[ec2-user@ip-10-0-10-10 ~]$ sudo cp -r * /var/www/html/
[ec2-user@ip-10-0-10-10 ~]$ sudo chown apache:apache /var/www/html/ -R
~~~

Apacheを再起動する。

~~~
[ec2-user@ip-10-0-10-10 ~]$ sudo systemctl restart httpd.service
[ec2-user@ip-10-0-10-10 ~]$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since 金 2020-05-22 08:42:23 UTC; 6s ago
     Docs: man:httpd.service(8)
(以下略)
~~~

#WordPressの設定
ブラウザにドメイン名もしくはIPアドレスを入力して、WordPressにアクセス。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/85a86c88-982f-f553-1e6c-6ec6e9aca23f.png)
RDSのダッシュボードにアクセスしてエンドポイントをコピーしておく。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/368ad0ac-de8c-4a72-aa0e-124fc65e2d2f.png)
さあ、始めましょうを選択すると以下の画面になるので、DBを作成した時の情報を入力して送信を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/82f6327f-3140-f14c-4c56-1f056351141e.png)
インストール実行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/e5da4a06-3f12-87d0-0fe9-6fe214adc8d6.png)
WordPress用のユーザーを作成する。入力後、WordPressをインストールを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/15704cc4-ff0b-3ba4-22a6-4c807129fb76.png)
ログインを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/5237660e-8b04-93cc-2367-36b22bcbdcfb.png)
ログインする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/50261962-8b00-0755-1c8d-21301dfe3b31.png)
ログイン成功！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/558865/fb03c56a-4dc8-0d7b-9273-3b2adf0bb674.png)

#終わりに
なんとかWordPressまで作成することができた。次は自分なりに環境をカスタマイズしたり、一から環境構築をしたりして、AWSをマスターしていきたい。