AWS EC2にてwordpressを使うためのメモ

##はじめに
AWS EC2インスタンスでwordpressのインストールをしようとしたら少し手間取ったためその時のメモです。

##環境

- サーバ：Amazon EC2（Amazon Linux 2）
- インストールしたもの：httpd(Apache), php, php-mysql, php-mbstring, php-gd, MariaDB

##事象１
Wordpressをダウンロードしてブラウザからインストールページに移動したところ以下のエラーが出ていました。

```:インストールページ
Your server is running PHP version 5.4.16 but WordPress 5.2.2 requires at least 5.6.20.
```
###原因
[Updating the Minimum PHP Version](https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/)
PHPバージョンは5.6.20が必須となったようです。

AWSのEC2にてそのまま以下のコマンドを打つとかなり古いバージョンのPHP5.4.16がインストールされているため考慮が必要でした。

```:PHP5系がインストールされる
# yum install php
```

###対策
参考：[【EC2】WordPressインストール](https://qiita.com/ghogho-seki/items/9f3d667116144839368e)
また、試していないですが、amazon-linux-extrasにてPHP7系をインストールできるようです
[Amazon Linux2とAmazon Linuxの違いについて（メモ）](https://qiita.com/akira345/items/2a09c4d06d2e3415bc8d)

まずは、インストールされてしまっているPHP5系のアンインストール

```
# yum remove php-*
```

つづいてremiの追加

```
# wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -ivh epel-release-latest-7.noarch.rpm
# yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum-config-manager --enable remi-php72
```

PHP7のインストール

```
# yum install -y php72 php72-php php72-php-fpm
# ln -s /usr/bin/php72 /usr/bin/php
```

消してしまった関連モジュールの再インストール

```
yum install php-mysql php-mbstring php-gd
```

Apacheの再起動

```
systemctl restart httpd
```
これにて、再度インストールページに遷移したら事象１のエラーは消えていましたが、代わりに事象２のエラーが出ていました。

##事象２
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

###原因

```sh:何も出てこない
# php -m | grep mysql
```
インストールは完了していることを確認したが、どうもバージョンがおかしい。5.4.16・・・。

```sh
# yum list installed | grep php
php-common.x86_64                     5.4.16-46.amzn2.0.2            @amzn2-core
php-gd.x86_64                         5.4.16-46.amzn2.0.2            @amzn2-core
php-mbstring.x86_64                   5.4.16-46.amzn2.0.2            @amzn2-core
php-mysqlnd.x86_64                    5.4.16-46.amzn2.0.2            @amzn2-core
php-pdo.x86_64                        5.4.16-46.amzn2.0.2            @amzn2-core
php72.x86_64                          2.0-1.el7.remi                 @remi-safe 
php72-php.x86_64                      7.2.24-1.el7.remi              @remi-safe 
php72-php-cli.x86_64                  7.2.24-1.el7.remi              @remi-safe 
php72-php-common.x86_64               7.2.24-1.el7.remi              @remi-safe 
php72-php-fpm.x86_64                  7.2.24-1.el7.remi              @remi-safe 
php72-php-json.x86_64                 7.2.24-1.el7.remi              @remi-safe 
php72-runtime.x86_64                  2.0-1.el7.remi                 @remi-safe 
```

php72のエイリアスでインストール

```sh
# yum install php72-php-mysqlnd php72-php-mbstring php72-php-gd
# yum list installed | grep php
php-common.x86_64                     5.4.16-46.amzn2.0.2            @amzn2-core
php-gd.x86_64                         5.4.16-46.amzn2.0.2            @amzn2-core
php-mbstring.x86_64                   5.4.16-46.amzn2.0.2            @amzn2-core
php-mysqlnd.x86_64                    5.4.16-46.amzn2.0.2            @amzn2-core
php-pdo.x86_64                        5.4.16-46.amzn2.0.2            @amzn2-core
php72.x86_64                          2.0-1.el7.remi                 @remi-safe 
php72-php.x86_64                      7.2.24-1.el7.remi              @remi-safe 
php72-php-cli.x86_64                  7.2.24-1.el7.remi              @remi-safe 
php72-php-common.x86_64               7.2.24-1.el7.remi              @remi-safe 
php72-php-fpm.x86_64                  7.2.24-1.el7.remi              @remi-safe 
php72-php-gd.x86_64                   7.2.24-1.el7.remi              @remi-safe 
php72-php-json.x86_64                 7.2.24-1.el7.remi              @remi-safe 
php72-php-mbstring.x86_64             7.2.24-1.el7.remi              @remi-safe 
php72-php-mysqlnd.x86_64              7.2.24-1.el7.remi              @remi-safe 
php72-php-pdo.x86_64                  7.2.24-1.el7.remi              @remi-safe 
php72-runtime.x86_64                  2.0-1.el7.remi                 @remi-safe 
```

出てくるようになりました。

```sh
# php -m | grep mysql
mysqli
mysqlnd
pdo_mysql
```

再度、インストールページにアクセスしたところインストールの設定画面が表示されました。
お疲れ様でした。