AWS EC2 AmazonLinux2 PHPをインストールする

# 目的

- PHPのインストールに詰まったので方法をまとめる。

# 実施環境

- ハードウェア環境

| 項目 | 情報 |
| --- | --- |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

# 前提条件

- 下記、または下記に準ずる方法でAWS EC2 AmazonLinux2インスタンスが作成されていること
    - [AWS EC2 をMacで使ってみよう!](https://qiita.com/miriwo/items/a1ab84c098008e43d042)

# 前提情報

- この記事では下記のバージョンのPHPのインストールを目指す。

    | 項目 | 情報 | 備考 |
    | --- | --- | --- |
    | PHP | 7.4.X | コマンド`$ php --version`で確認 |

# 読後感

- EC2のインスタンス内にPHPがインストールされコマンド`$ php --version`を実行してもエラーが発生しない。

# 概要

1. インストールリポジトリの追加
1. 必要パッケージのインストール

# 詳細

- 説明時に実行するコマンドはsshを用いてEC2のインスタンスに接続して実行すること。

1. インストールリポジトリの追加
     1. 下記コマンドを実行してリポジトリを追加する。

        ```terminal
        sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
        sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
        ```

    1. 下記コマンドを実行して念のために既存のPHPパッケージを削除する。(削除する物が無いと言われても問題ない。)

        ```terminal
        sudo yum remove php
        ```

1. 必要パッケージのインストール
    1. 下記コマンドを実行してPHPのパッケージをインストールする。

        ```terminal
        sudo yum install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
        ```

    1. 下記コマンドを実行してバージョンを指定してPHPをインストールする。(yを入力してEnterを押下する際にインストールパッケージとリポジトリが下記の様になっていることを確認する。)

        ![ec2-user_ip-172-31-5-216__.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/52612b6c-a153-fc29-8540-9b157e206ce1.png)

        ```terminal
        sudo amazon-linux-extras install php7.4
        ```

    1. 下記コマンドを実行してそのほかに必要なパッケージをインストールする。(yを入力してEnterを押下する際にインストールパッケージとリポジトリが下記の様になっていることを確認する。)

        ![ec2-user_ip-172-31-15-95__.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/62cee503-a2a6-953a-003b-4f0cb64e0f4f.png)

        ```terminal
        sudo yum install --enablerepo=remi,amzn2extra-php7.4 php-xml php-mbstring
        ```

1. 確認
    1. 下記コマンドを実行してyumにてインストールされたphpと名前がつくパッケージの一覧を表示する。
    
        ```terminal
        yum list installed | grep php
        ```

    1. 先のコマンドの結果が下記の様になることを確認する。

        ```terminal
        php-cli.x86_64                  7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-common.x86_64               7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-fpm.x86_64                  7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-json.x86_64                 7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-mbstring.x86_64             7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-mysqlnd.x86_64              7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-pdo.x86_64                  7.4.7-1.amzn2                 @amzn2extra-php7.4
        php-xml.x86_64                  7.4.7-1.amzn2                 @amzn2extra-php7.4  
        ```

    1. 下記コマンドを実行してPHPが正常にインストールされたことを確認する。

        ```terminal
        php --version
        ```

    1. composerをインストールしたい方は下記を参考にインストールを行う。
        - [AWS EC2 AmazonLinux2 composerをインストールする](https://qiita.com/miriwo/items/b25f9d4d74b7103f6ff6)

## 追記

- PHP8.1系を入れたい場合は「74」や「7.4」のようにバージョン指定している部分を修正すればおそらくインストールできます。