AWS: 簡単なLAMPサーバーでWordPressを動かすまで（Intel Mac） 〜WordPressをEC2にインストール〜

# はじめに
AWSハンズオンの学習記録です。
2022年8月の情報をもとに投稿します。

ゴールは、EC2を使って簡易的な仮想サーバーを作り、ブログソフトであるWordPressをインストールします。
また、WordPressを外部公開できることを想定しています。

**今回はこれまで流れを踏まえて、WordPressのインストール方法を投稿します。**

尚、ハンズオンがメインのため、各サービスの概要や用語の解説は極力省かせていただきます。
### ゴール
仮想サーバーでWordPressを使える状態にします

### ゴールまでの流れ

[1.VPCとサブネットを作成](https://qiita.com/holySh10/items/749b98e320fc71e6739e)
[2.EC2を作成／セキュリティグループの設定](https://qiita.com/holySh10/items/90a3501d819f1ae2c7cd)
[3.EC2へSSH接続](https://qiita.com/holySh10/items/689f4c83cd18db128983)
[4.Webサーバーである「Apache」をインストール](https://qiita.com/holySh10/items/53ec78d420e372643c55)
[5.プログラミング言語である「PHP」をインストール](https://qiita.com/holySh10/items/90507e2b03ee6c681790)
[6.データベースである「MariaDB」をインストール](https://qiita.com/holySh10/items/0b8b9d5ea96582b39fca)

:::note info
7.WordPressをインストール（本記事ではここを解説します）
:::

### 本記事の目的
・WordPressのインストール方法を理解します

### 動作環境
・MacBook Pro (Retina, 13-inch, Late 2013)
・macOS: Big Sur 11.6.1
・CPU: Intel
・メモリ: 8GB

# WordPressをインストールするまでの流れ

#### ①EC2インスタンスへSSH接続
詳しくは[こちら](https://qiita.com/holySh10/items/689f4c83cd18db128983)

#### ②root ユーザーに切り替える
詳しくは[こちら](https://qiita.com/holySh10/items/53ec78d420e372643c55#root-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%82%8B)

#### ③Apacheを起動する
詳しくは[こちら](https://qiita.com/holySh10/items/53ec78d420e372643c55#apache%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B)

#### ④MariaDBを起動しログインする
以下の`systemctl`コマンドを用いてMariaDBを起動します↓
```
# systemctl start mariadb
```

ログイン方法の詳細は前回記事の[こちら](https://qiita.com/holySh10/items/0b8b9d5ea96582b39fca#mariadb%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A8%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B)
※変更したパスワードでログインしましょう。

#### ⑤WordPressをダウンロードし展開する
###### a).EC2上に`mkdir`コマンドを用いて作業用のディレクトリを作る
>EC2インスタンスにWordPressをインストールするため、まずはEC2インタンス上に「作業部屋」を作成します。
ここでは便宜上、「作業部屋」＝「ディレクトリ」と考えて良いです。

>`mkdir`コマンドとは「make directory」の略で、直訳すると「ディレクトリを作成する」、つまり作業部屋であるディレクトリを新規作成するコマンドです。

以下のコマンドを入力します↓
```
# mkdir /home/wordpress
```
`wordpress`という名前のディレクトリ＝作業部屋を`/home`のディレクトリ以下に作成します。

###### b.)`cd`コマンドを用いて`wordpress`のディレクトリに移行する
以下のコマンドを入力します↓
```
# cd /home/wordpress
```
`cd`コマンドについては[こちら](https://qiita.com/holySh10/items/689f4c83cd18db128983#%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E6%93%8D%E4%BD%9C-step1-cd-%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B)を参照願います。
###### c.)`wget`コマンドを用いてWordPressをダウンロードする
>`wget`コマンドとは、凄く噛み砕くと「Web上からコンテンツなどをダウンロードする」コマンドと考えて良いです。HTTP・HTTPS・FTP に対応しています。

以下のコマンドを入力します↓
```
# wget https://wordpress.org/latest.tar.gz
```
記述方法は、ざっくりですが`wget`+`(space)`+`Web上にあるダウンロードしたいコンテンツ`となります。

成功すると以下のような情報が出力されます↓
```
--2022-08-11 05:28:43--  https://wordpress.org/latest.tar.gz
wordpress.org (wordpress.org) をDNSに問いあわせています... 198.143.164.252
wordpress.org (wordpress.org)|198.143.164.252|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 21171263 (20M) [application/octet-stream]
`latest.tar.gz' に保存中

100%[======================================>] 21,171,263  6.24MB/s 時間 3.2s   

2022-08-11 05:28:47 (6.24 MB/s) - `latest.tar.gz' へ保存完了 [21171263/21171263]
```
上記のように`保存完了`や`saved`と表示されれば成功です。
###### d.)`tar`コマンドを用いてダウンロードしたファイルを展開する
>`tar`コマンドとは、文字通りtar形式のファイルを操作するコマンドです。`tar`の後にコマンドを追加することで、どのような操作をするか指定できます。
ここでは、`tar`の後に`xzvf`というファイルを解凍するコマンドを付け足します。

以下のコマンドを入力します↓
```
# tar xzvf latest.tar.gz
```
記述方法は、`tar`+`(space)`+`xzvf`+`ファイル名`です。

成功すると、以下の情報が出力されます↓ *※途中省略します*
```
wordpress/
wordpress/xmlrpc.php
wordpress/wp-blog-header.php
wordpress/readme.html
~~~~以下省略します~~~~
```
#### ⑥Apacheユーザーに書き込み権限を与える
###### a.)展開したWordPressをApacheのディレクトリに移動する
WebサーバーであるApacheのディレクトリに、展開したWordPressの中身を全てApacheの `/var/www/html/`ディレクトリの下に移動します。

以下の`mv`コマンドを入力します↓
```
# mv wordpress/* /var/www/html/
```
###### b.)移行先のApacheのディレクトリへの書き込み権限を与える
Apacheユーザーに対して、移行先のディレクトリである`/var/www/html/`への書き込み権限を与えます。

1.`chown`コマンドを用いてファイルの所有者を変更する
>`chown`コマンドとは上記説明の通り、ファイルの所有者を変更するコマンドです。今回はファイルの所有者を「Apacheユーザ」に変更します。

以下のコマンドを入力します↓
```
# chown apache.apache -R /var/www/html
```
2.`chmod`コマンドを用いて書き込み権限を与える
>`chmod`コマンドとは、対象に書き込み権限を与えるコマンドです。今回は「/var/www/htmlに対して」書き込み権限を与えます。

以下のコマンドを入力します↓
```
chmod +w -R /var/www/html
```
#### ⑦WordPressをインストールする
###### a.)ブラウザでインストールページにアクセスする
アクセス方法は、ブラウザ上で「http://パブリックIP/wp-admin.install.php」
と入力します。成功すると以下のようなページが表示されます。
![スクリーンショット 2022-08-11 15.23.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/18242db1-781f-b8f1-ede6-1fb89a163ef1.png)
「日本語」を選択し、「次へ」を押下します。

###### b.)データベースの情報を設定する
![スクリーンショット 2022-08-11 15.28.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/8c228500-7e06-cc72-8673-68c1ed04e45f.png)
「次へ」を押下すると上記画面が現れます。「さあ、始めましょう！」を押下して次の項目へ進みます。
![スクリーンショット 2022-08-11 15.31.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/47bf5a0d-f244-355f-e552-7c8bdd02af51.png)
ここでは、[前回記事](https://qiita.com/holySh10/items/0b8b9d5ea96582b39fca#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B)で設定した情報に準拠して入力してみます。
例としては以下の通りに入力します↓

|  | 入力値 |
|:-:|:-:|
| データベース名  |  userdb |
| データベースのユーザー名  |user   |
|  パスワード | 各自設定したもの  |
|  データベースのホスト名 |  localhost（そのまま） |
|  テーブル接頭辞 |  wp_（そのまま） |

成功すると以下のページが表示されます↓
![スクリーンショット 2022-08-11 15.50.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/8d8baa2a-edd0-01a1-cd41-181a042709ed.png)
「インストール実行」を押下します。
###### c.)WordPressの初期設定を行う
![スクリーンショット 2022-08-11 15.56.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/46ed7a5b-9930-12c6-633e-8c4f5b67de93.png)
![スクリーンショット 2022-08-11 15.56.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/c9b49542-8fbc-108a-443b-32cb965924f6.png)
上記ページが表示されるので、適宜入力が終われば「WordPress をインストール」を押下します。

![スクリーンショット 2022-08-11 16.01.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/22f61c86-b919-71d9-b0c4-bc0098819a3c.png)
成功すると上記ページが表示されます。

#### ⑧WordPressにログインし動作確認する
![スクリーンショット 2022-08-11 16.04.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/972763a0-e326-f141-bf26-787bfd40cb87.png)
設定したユーザ名とパスワードでログインし、正常にページが動いているか確認します。

![スクリーンショット 2022-08-11 16.05.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/232bab60-0ec6-427c-1835-218bcfaef33a.png)
ログインでき、上記ページが表示されると成功です。

#### ⑨作成したWordPressに今後もアクセスしたい場合
ブラウザ上に`http://パブリックIP/wp-admin`と入力すれば、WordPressのログインページにアクセスできます。
その後ログインします。

# 今後どうするのか？
### WordPressを残す場合
WordPressを残す場合、以下の2パターンに分かれることが多いと思います。
###### a.)常に稼働したい

:::note warn
このパターンではEC2を常に稼働することになると思うので、秒単位で料金が課金されます（スポットインスタンスやリザーブドインスタンスなどを除く）。
ハンズオンや検証目的であれば、後述するような、必要な場合のみEC2を起動する方法や、EC2ごと完全に削除する方法を推奨します。
:::
![スクリーンショット 2022-08-12 13.38.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/c1863c91-ffc7-bc25-e347-a55dd76f4f81.png)
上記画面右上の「ログアウト」を押下し、必要に応じてログインします。
###### b.)必要な場合のみWordPressを使いたい

:::note info
EC2を停止すると、ApacheやMariaDBも停止します。そこで、EC2再起動時にApacheやMariaDBも自動起動する設定をおすすめします。
:::

###### 1.ApacheとMariaDBの自動起動設定を行う
以下の`systemctl`コマンドを用いてApacheとMariaDBの自動起動設定を行います↓
```
# systemctl enable httpd
# systemctl enable mariadb
```
入力した結果は以下の通りです↓
```
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/xxxxx.service.
```
※最後の`xxxxx`の部分は`httpd`、`mariadb`のようなサービス名が入ります。

###### 2.WordPressごとEC2を停止する
![スクリーンショット 2022-08-12 14.09.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/62e00bb8-fb9e-823d-ff7e-63c99423275d.png)
EC2ダッシュボードを表示し、「インスタンスを停止」を押下します。

###### 3.WordPressごとEC2を再起動する
上記画像の「インスタンスを再起動」を押下し起動確認後、[本記事上部記載の①〜④](https://qiita.com/holySh10/items/cd3db43cf0e951705c31#ec2%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%B8ssh%E6%8E%A5%E7%B6%9A)を実施します。その後、[本記事⑨](https://qiita.com/holySh10/items/cd3db43cf0e951705c31#%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9Fwordpress%E3%81%AB%E4%BB%8A%E5%BE%8C%E3%82%82%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%97%E3%81%9F%E3%81%84%E5%A0%B4%E5%90%88)を実施します。

### 全て削除したい場合
![スクリーンショット 2022-08-12 14.09.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2774155/171cd2cc-0f82-dae7-a971-6ee660f7280c.png)
これはシンプルで、上記画像の「インスタンスを終了」を押下します。


# あとがき
AWSのサービスであるEC2インスタンス上にLAMPサーバーを構築し、WordPressを動かしてみようというテーマで、合計7回に渡り投稿させていただきました。

このサーバーをよりAWSらしく構築するには、Route 53で独自ドメインを設定したり、ELBで負荷分散したり、RDSといったマネージドサービスのデータベースを使ったり...などさまざまな機能を利用します。
拡張できる余地がまだあるので、機会があれば投稿してみようかな、と思います。

最後に、ここまでお読みくださった方々、本当にありがとうございました。
みなさまのご参考になれば幸いです。