Amazon Linux2023でWordpressを構築する

# 記事概要
## 前置き
最近Amazon Linux 2023という、新しいLinux ディストリビューション
が誕生したみたいですね！

最近WordpressをAWSを使って構築しようとしていたのですが、
Amazon Linux2と比べてややコマンドなど変更点があったので
本記事にまとめようと思います！

Amazon Linux 2023が気になる方や
Wordpress構築をしてみたい方に参考になれば幸いです。

## Amazon Linux 2023とLinux2の違いは？
詳しい説明は本記事では省きますが、
セキュリティ機能がデフォルトで有効だったり、
バージョン管理リポジトリによって特定のバージョンにロックすることが可能だとか。。

こちらの記事が分かりやすかったです！

https://qiita.com/Brutus/items/a2ac164297677edaa6e2


## 環境
・Macbook Pro(2020)
・Amazon Linux 2023
・Amazon EC2
・Amazon RDS
・MySQL
・PHP

所謂LAMP環境と呼ばれる内容です。
何かしらRDSでDBの作成をしておいてください！

# Wordpressを構築しよう！
## ① EC2インスタンスの作成
まずはEC2インスタンスを作成していきます。
こちらはNWが接続できるインスタンスが作成できれば
問題ないです。

以下の記事を参考に作成いただけたらと思います！

https://qiita.com/railgun-0402/items/c6b7df1f238228e25dd2

## ② インスタンスに接続
①で作成したインスタンスに接続していきましょう！
以下コマンドを実行してください。

```
 ssh -i [~.pem] ec2-user@[インスタンスのパブリック IPv4 アドレス]
```

pemはインスタンスを作成時に利用したファイル、
IPv4アドレスは、
起動中のインスタンスをチェック>詳細>パブリック IPv4 アドレス
をご確認いただけたらと思います！

成功すると、以下のようにインスタンスに接続できるかと思います！
```
   ,     #_
   ~\_  ####_        Amazon Linux 2023
  ~~  \_#####\
  ~~     \###|
  ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
    ~~~         /
      ~~._.   _/
         _/ _/
       _/m/'
[ec2-user ~]$
```
以下コマンドで権限を上げておきましょう。。

```
[ec2-user ~]$ sudo su -
```

## ③ PHPのインストール
本記事ではPHPを例に進めていきます。
PHPをインストールは、「dnf install」コマンドを使用します。

ここでAmazon Linux2で経験がある人は、
「amazon-linux-extras」はどうした！
と、疑問に思うかもしれません。

ここがAmazon Linux 2023とLinux2の第一の違いです。
「amazon-linux-extras」は2023では利用できないので、
「dnf」コマンドに慣れていく必要があります！

:::note info
以下の違いがあります！
・Amazon Linux2： amazon-linux-extras
・Amazon Linux 2023：dnf
:::

では早速進めていきましょう！

### ソフトウェアの更新
すべてのソフトウェアパッケージが最新の状態であることを確認する必要があります。
以下コマンドを実行しましょう。
```
$ sudo dnf update -y
```

-y オプションは、確認メッセージを表示せずに更新が可能です！

### ApacheサーバとPHPパッケージをインストール
```
$ sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel
```

実行するとこんな感じの流れになり、インストールがされます。
しばらく待ちましょう！

![スクリーンショット 2023-04-26 0.33.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/ab9e6b16-97e0-5fd5-948e-dd20386e7cca.png)

完了すると、以下のように「Complete!」と出てくるかと思います。
ここまで確認できればOKです！

![スクリーンショット 2023-04-26 0.34.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/a318d3ea-5611-3c55-ca4a-79fa4c070fac.png)

PHPをインストールする方法は以下記事を参考にしました！

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2023.html

## ④ MySQLのインストール
さて次はDBのインストールです。
本記事はMySQLで実行します〜

MySQLも「dnf」コマンドを利用していきます。

```
$ sudo dnf -y localinstall  https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

$ sudo dnf -y install mysql mysql-community-client

$ sudo yum install mysql mysql-devel
```

こちらもインストールが完了すると、
「Complete！」と出ますので確認できればOKです！

![スクリーンショット 2023-04-26 0.39.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/c8dba7eb-c676-4509-8ed4-bd39e4a2542e.png)

## ⑤ Wordpressの入手
### WordPressパッケージを取得
以下のコマンドを実行すると、Wordpressを入手できます！

```
# WordPressのインストールパッケージを取得
$ sudo wget http://ja.wordpress.org/latest-ja.tar.gz ~/
```

### WordPressパッケージを展開

上記で入手したパッケージは展開する必要があります。
以下コマンドで展開してください。

```
# WordPressパッケージを展開
$ sudo tar zxvf latest.tar.gz
```

パッケージを展開したら、元のファイルは不要なので
削除しちゃいましょう。

```
$ sudo rm latest.tar.gz
```

### 公開ディレクトリにコピー
さて展開したファイルはWebサーバーの公開ディレクトリに
置く必要があります。

先程展開した内容をコピーしましょう。

```
$ cp -r ~/wordpress/* /var/www/html/
```

最後に権限をApacheの所有者に変更します。
```
$ chown apache:apache -R /var/www/html/
```

### 補足：「/var/www/html/」って何やねん
結論から言うと、「どのディレクトリ配下を、Webサーバーに公開するか？」
と言う意味です。

これはDocumentRootという設定が存在します。

上記のまんまですがDocumentRootとは、どのディレクトリ以下をインターネット上に公開するか？という設定です。
まあ絶対に「/var/www/html」の必要はありません。

「/var/www/htmlで」あることが多いってだけらしいです。

以下のサイトに簡単な説明がありますので、
よかったらご参考にしてください！

https://eng-entrance.com/web-server-mechanism

## ⑥ サーバの起動
いよいよ作成したApacheサーバを起動していきます！
起動するには以下のコマンドを実行しましょう。


### サーバ起動
```
$ sudo systemctl start httpd.service
```

以下コマンドで起動しているサーバを確認することも可能です。
```
$ sudo systemctl status httpd.service
```

手順1で作成したインスタンスのIPv4アドレスを
ブラウザに入力しましょう！

![スクリーンショット 2023-04-25 23.45.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/01353a31-7451-924a-5124-f4e6df277527.png)

お？日本語に設定して。。

![スクリーンショット 2023-04-25 23.45.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/bb229703-7834-7f4f-11e6-57ea594724f3.png)

ついに、、、
Wordpressのページに遷移できましたね！

あとは簡単に設定していきましょう！

![スクリーンショット 2023-04-26 0.06.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/4695a97f-64a6-e788-d300-d2fa27fd053c.png)

お疲れ様でした！
これでWordpressの構築は完了になります！

## [エラー]:Wordpressが開けない場合
以下のようなページが表示され、Wordpressの設定画面に
辿り着けない人がいらっしゃるかもしれません。

![スクリーンショット 2023-04-25 20.48.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/945342/0803f3f3-9dc9-3cb2-9019-097c67ca6b78.png)

私のやり方では出くわさなかったのですが、
よく上記のページに引っかかる方がいるらしいので
参考になりそうな記事をリンクしておきます。

https://dotiga.blog/uncategorized/2022-mysql-extension-not-available

https://weekend-v.work/archives/492


## 最後に
ここまでお付き合いいただき、誠にありがとうございました！
これからWordpressをAWSで構築したい方、AWS Linux2023について
簡単に触れたい方の参考になれれば幸いです！

Wordpressは簡単にWebサイトを作成できるらしいので
私も何か作ってみようかと思います！

## 参考文献

▪️AWS公式

https://aws.amazon.com/jp/linux/amazon-linux-2023/

▪️拡張機能が利用できない場合

https://dotiga.blog/uncategorized/2022-mysql-extension-not-available

▪️Amazon Linux 2023にMySQL をインストールする

https://qiita.com/Bjp8kHYYPFq8MrI/items/734ac300c04e447edef3