概要
EC2に任意のPHPをインストールする
初期状態のEC2にはPHPはインストールされていない
[ec2-user@ec2-php ~]$ php -v
-bash: php: command not found
PHP 5.4
amzn2-coreに入ってるのでyumでインストールするだけ
[ec2-user@ec2-php ~]$ yum list | grep php
php.x86_64 5.4.16-46.amzn2.0.2 amzn2-core
[ec2-user@ec2-php ~]$ sudo yum install -y php php-mbstring
[ec2-user@ec2-php ~]$ php -v
PHP 5.4.16 (cli) (built: Oct 31 2019 18:34:05)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
PHP 7.2 7.3 7.4 8.0
amazon-linux-extrasに入ってるので適宜有効にしてインストール
[ec2-user@ec2-php ~]$ amazon-linux-extras | grep php
15 php7.2 available \
17 lamp-mariadb10.2-php7.2 available \
31 php7.3 available \
42 php7.4 available [ =stable ]
51 php8.0 available [ =stable ]
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras enable php7.2
15 php7.2=latest enabled \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14
=7.2.16 =7.2.17 =7.2.19 =7.2.21 =7.2.22 =7.2.23
=7.2.24 =7.2.26 =stable ]
[ec2-user@ec2-php ~]$ sudo yum clean metadata && sudo yum install -y php php-mbstring
[ec2-user@ec2-php ~]$ php -v
PHP 7.2.34 (cli) (built: Oct 21 2020 18:03:20) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
PHP 7.2.* 7.3.* 7.4.* 8.0.*
amazon-linux-extrasでPHPを有効にする際にバージョンを指定することも可能
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras enable php7.2=7.2.16
15 php7.2=7.2.16 enabled \
[ =7.2.0 =7.2.4 =7.2.5 =7.2.8 =7.2.11 =7.2.13 =7.2.14
=7.2.16 =7.2.17 =7.2.19 =7.2.21 =7.2.22 =7.2.23
=7.2.24 =7.2.26 =stable ]
[ec2-user@ec2-php ~]$ sudo yum clean metadata && sudo yum install -y php php-mbstring
[ec2-user@ec2-php ~]$ php -v
PHP 7.2.16 (cli) (built: Apr 3 2019 18:39:35) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
amazon-linux-extrasで有効なPHPを切り替える
amazon-linux-extrasで異なるバージョンのPHPを有効にしようとすると怒られる
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras enable php7.2
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras enable php8.0
Refusing because php8.0 could cause an invalid combination.
有効にしているPHPを無効にしてから再度有効にする必要がある
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras disable php7.2
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras enable php8.0
51 php8.0=latest enabled [ =stable ]
それ以外のバージョンのPHPをインストールする
aws関連からは提供されていなさそうなのでremiからインストール
[ec2-user@ec2-php ~]$ sudo amazon-linux-extras install -y epel
[ec2-user@ec2-php ~]$ sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
[ec2-user@ec2-php ~]$ sudo yum install -y php56 php56-php-mbstring
[ec2-user@ec2-php ~]$ sudo . /opt/remi/php56/enable
[ec2-user@ec2-php ~]$ sudo ln -s /usr/bin/php56 /usr/bin/php
[ec2-user@ec2-php ~]$ php -v
PHP 5.6.40 (cli) (built: Apr 28 2021 14:35:32)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
PHPを削除する
新しくPHPをインストールする場合は削除してからインストールする
sudo yum remove -y php-*
注意事項
後は必要に応じてPHP拡張をインストール
参考