Amazon Linux 2023にPHPとWordPressをインストールする方法

## はじめに
Amazon Linux 2023(AL2023)で作成したEC2にPHPとWordPressをインストール機会がありましたので、インストール方法について自分のための備忘録を兼ねて記載します。
## 前提
・AWSアカウントがあること
・Amazon Linux 2023のEC2が作成済みであること
・作成したEC2にパブリックIPでアクセスできること
※ターミナルエミュレーターとしてTera Termを利用しています。
## やること
※今回はバージョンを指定してインストールするやり方になります
・PHPは「8.1」のヴァージョンをインストールします。
・WordPressは「6.0.1」のヴァージョンをインストールします。


## PHPをインストール
EC2にログインできている状態で以下のコマンドを入力します。
ルートユーザーに移行します。
```
[ec2-user@]$ sudo su root
```
最新のアップデートを確認します。
```
[ec2-user@]$ dnf update
```
 PHP 関連の利用可能なパッケージのリストを表示します。
 ```
[ec2-user@]$ dnf list --available php*
```
出力結果は以下になります。
```
[ec2-user@]$ dnf list --available php*
Last metadata expiration check: 0:06:22 ago on Wed Sep 25 09:01:46 2024.
Available Packages
php-pear.noarch                                                  1:1.10.13-2.amzn2023.0.4                                            amazonlinux
php8.1.x86_64                                                    8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-bcmath.x86_64                                             8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-cli.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-common.x86_64                                             8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-dba.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-dbg.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-devel.x86_64                                              8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-embedded.x86_64                                           8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-enchant.x86_64                                            8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-ffi.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-fpm.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-gd.x86_64                                                 8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-gmp.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-intl.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-ldap.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-mbstring.x86_64                                           8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-mysqlnd.x86_64                                            8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-odbc.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-opcache.x86_64                                            8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-pdo.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-pgsql.x86_64                                              8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-process.x86_64                                            8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-pspell.x86_64                                             8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-snmp.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-soap.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-tidy.x86_64                                               8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-xml.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.1-zip.x86_64                                                8.1.29-1.amzn2023.0.1                                               amazonlinux
php8.2.x86_64                                                    8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-bcmath.x86_64                                             8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-cli.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-common.x86_64                                             8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-dba.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-dbg.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-devel.x86_64                                              8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-embedded.x86_64                                           8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-enchant.x86_64                                            8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-ffi.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-fpm.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-gd.x86_64                                                 8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-gmp.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-intl.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-ldap.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-mbstring.x86_64                                           8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-mysqlnd.x86_64                                            8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-odbc.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-opcache.x86_64                                            8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-pdo.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-pgsql.x86_64                                              8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-process.x86_64                                            8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-pspell.x86_64                                             8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-snmp.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-soap.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-sodium.x86_64                                             8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-tidy.x86_64                                               8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-xml.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.2-zip.x86_64                                                8.2.21-1.amzn2023.0.1                                               amazonlinux
php8.3.x86_64                                                    8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-bcmath.x86_64                                             8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-cli.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-common.x86_64                                             8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-dba.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-dbg.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-devel.x86_64                                              8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-embedded.x86_64                                           8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-enchant.x86_64                                            8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-ffi.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-fpm.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-gd.x86_64                                                 8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-gmp.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-intl.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-ldap.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-mbstring.x86_64                                           8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-modphp.x86_64                                             8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-mysqlnd.x86_64                                            8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-odbc.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-opcache.x86_64                                            8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-pdo.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-pgsql.x86_64                                              8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-process.x86_64                                            8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-pspell.x86_64                                             8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-snmp.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-soap.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-sodium.x86_64                                             8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-tidy.x86_64                                               8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-xml.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
php8.3-zip.x86_64                                                8.3.10-1.amzn2023.0.1                                               amazonlinux
```
php8.1.x86_64 があることが確認できます。
PHP 8.1 を指定してインストールします。
```
[ec2-user@]$ dnf install php8.1
```
インストール完了時に
```
Complete!
```
と出ていることを確認してください。
続けてPHP 関連パッケージをインストールします。
```
[ec2-user@]$ dnf install php-fpm php-mysqli php-json php php-devel
```
こちらもインストール完了時に
```
Complete!
```
と出ていることを確認してください。
PHPが指定のバージョンでインストールできているか確認します。
```
[ec2-user@]$ php -v
PHP 8.1.29 (cli) (built: Jun  5 2024 05:51:57) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.29, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.29, Copyright (c), by Zend Technologie
```
「PHP 8.1.29」がインストールできていることが確認できました。
## WordPressをインストール
続けてWordPressをインストールします。
WordPress のバージョン 6.0.1 のインストールパッケージをダウンロードします。
```
[ec2-user@]$ wget https://wordpress.org/wordpress-6.0.1.tar.gzwget https://wordpress.org/wordpress-6.0.1.tar.gz
```
wordpress-6.0.1.tar.gz ファイルを解凍して、圧縮された内容を現在のディレクトリに展開します。
```
[ec2-user@]$ tar -xzf wordpress-6.0.1.tar.gz
```
WordPressが指定のバージョンでインストールできているか確認します。
```
[ec2-user@]$ cat home/ec2-user/wordpress/wp-includes/version.php
```
出力結果は以下にになります。
```
[ec2-user@]$ cat home/ec2-user/wordpress/wp-includes/version.php
<?php
/**
 * WordPress Version
 *
 * Contains version information for the current WordPress release.
 *
 * @package WordPress
 * @since 1.2.0
 */

/**
 * The WordPress version string.
 *
 * Holds the current version number for WordPress core. Used to bust caches
 * and to enable development mode for scripts when running from the /src directory.
 *
 * @global string $wp_version
 */
$wp_version = '6.0.1';

/**
 * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
 *
 * @global int $wp_db_version
 */
$wp_db_version = 53496;

/**
 * Holds the TinyMCE version.
 *
 * @global string $tinymce_version
 */
$tinymce_version = '49110-20201110';

/**
 * Holds the required PHP version.
 *
 * @global string $required_php_version
 */
$required_php_version = '5.6.20';

/**
 * Holds the required MySQL version.
 *
 * @global string $required_mysql_version
 */
$required_mysql_version = '5.0';
```
「wp_version = '6.0.1'」 がインストールできていることが確認できました。

## まとめ
Amazon Linux 2023にPHPとWordPressをインストールする方法について自分なりのまとめになります。
間違っている箇所などあればご指摘いただけると幸いです。

## 参考資料
https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/ec2-lamp-amazon-linux-2023.html

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/php.html

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/using-features.migration-al.generic.from-al2.html