☝️

PHP7.4からPHP8.1へバージョンアップした - EC2(Amazon Linux2)/ Nginx

2022/12/20に公開

パッケージのアップデート

$ sudo yum update -y
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                  | 3.7 kB  00:00:00
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ kernel.x86_64 0:4.14.301-224.520.amzn2 を インストール
---> パッケージ kernel-headers.x86_64 0:4.14.299-223.520.amzn2 を 更新
---> パッケージ kernel-headers.x86_64 0:4.14.301-224.520.amzn2 を アップデート
---> パッケージ kernel-tools.x86_64 0:4.14.299-223.520.amzn2 を 更新

.......

削除しました:
  kernel.x86_64 0:4.14.296-222.539.amzn2

インストール:
  kernel.x86_64 0:4.14.301-224.520.amzn2              python2-colorama.noarch 0:0.3.9-3.amzn2.0.1              python2-six.noarch 0:1.11.0-8.amzn2.0.1

更新:
  kernel-headers.x86_64 0:4.14.301-224.520.amzn2          kernel-tools.x86_64 0:4.14.301-224.520.amzn2           python2-dateutil.noarch 1:2.6.1-3.amzn2
  python2-jmespath.noarch 0:0.9.3-1.amzn2.0.2             python2-jsonschema.noarch 0:2.5.1-3.amzn2.0.2          python2-pyasn1.noarch 0:0.1.9-7.amzn2.0.2
  python2-rsa.noarch 0:3.4.1-1.amzn2.0.3

置換:
  python-colorama.noarch 0:0.3.2-3.amzn2                                             python-six.noarch 0:1.9.0-2.amzn2

完了しました!

PHPのバージョンアップ

現在のPHPのバージョン確認

$ php -v
PHP 7.4.33 (cli) (built: Nov 19 2022 00:22:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

PHP7.4のアンインストール

インストールされているPHPのパッケージをすべてアンインストール

$ sudo yum -y remove php-*
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ php-cli.x86_64 0:7.4.33-1.amzn2 を 削除
---> パッケージ php-common.x86_64 0:7.4.33-1.amzn2 を 削除
---> パッケージ php-fpm.x86_64 0:7.4.33-1.amzn2 を 削除
---> パッケージ php-gd.x86_64 0:7.4.33-1.amzn2 を 削除

.......

削除中                  : php-mysqlnd-7.4.33-1.amzn2.x86_64                                                                                                  6/9
  削除中                  : php-pdo-7.4.33-1.amzn2.x86_64                                                                                                      7/9
  削除中                  : php-json-7.4.33-1.amzn2.x86_64                                                                                                     8/9
  削除中                  : php-common-7.4.33-1.amzn2.x86_64                                                                                                   9/9
  検証中                  : php-pdo-7.4.33-1.amzn2.x86_64                                                                                                      1/9
  検証中                  : php-common-7.4.33-1.amzn2.x86_64                                                                                                   2/9
  検証中                  : php-json-7.4.33-1.amzn2.x86_64                                                                                                     3/9
  検証中                  : php-mysqlnd-7.4.33-1.amzn2.x86_64                                                                                                  4/9
  検証中                  : php-mbstring-7.4.33-1.amzn2.x86_64                                                                                                 5/9
  検証中                  : php-cli-7.4.33-1.amzn2.x86_64                                                                                                      6/9
  検証中                  : php-fpm-7.4.33-1.amzn2.x86_64                                                                                                      7/9
  検証中                  : php-gd-7.4.33-1.amzn2.x86_64                                                                                                       8/9
  検証中                  : php-xml-7.4.33-1.amzn2.x86_64                                                                                                      9/9

削除しました:
  php-cli.x86_64 0:7.4.33-1.amzn2        php-common.x86_64 0:7.4.33-1.amzn2         php-fpm.x86_64 0:7.4.33-1.amzn2           php-gd.x86_64 0:7.4.33-1.amzn2
  php-json.x86_64 0:7.4.33-1.amzn2       php-mbstring.x86_64 0:7.4.33-1.amzn2       php-mysqlnd.x86_64 0:7.4.33-1.amzn2       php-pdo.x86_64 0:7.4.33-1.amzn2
  php-xml.x86_64 0:7.4.33-1.amzn2

完了しました!

PHPのファイルが存在しない確認

$ php -v
-bash: /usr/bin/php: No such file or directory

PHP8.1をインストール

amazon-linux-extras をアップデート

$ sudo yum update -y amazon-linux-extras

amazon-linux-extras で利用可能なパッケージを確認する

$ amazon-linux-extras
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]
  2  httpd_modules            available    [ =1.0  =stable ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  6  postgresql10             available    [ =10  =stable ]
  9  R3.4                     available    [ =3.4.3  =stable ]
 10  rust1                    available    \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0  =1.38.0

.......

 34  lynis                    available    [ =stable ]
 36  BCC                      available    [ =0.x  =stable ]
 37  mono                     available    [ =5.x  =stable ]
 38  nginx1=latest            enabled      [ =stable ]
 39  ruby2.6                  available    [ =2.6  =stable ]
 40  mock                     available    [ =stable ]
 41  postgresql11             available    [ =11  =stable ]
 42  php7.4=latest            enabled      [ =stable ]
 43  livepatch                available    [ =stable ]
 44  python3.8                available    [ =stable ]
 45  haproxy2                 available    [ =stable ]
 46  collectd                 available    [ =stable ]
 47  aws-nitro-enclaves-cli   available    [ =stable ]

.......

 58  postgresql12             available    [ =stable ]
 59  postgresql13             available    [ =stable ]
 60  mock2                    available    [ =stable ]
 61  dnsmasq2.85              available    [ =stable ]
 62  kernel-5.15              available    [ =stable ]
 63  postgresql14             available    [ =stable ]
 64  firefox                  available    [ =stable ]
 65  lustre                   available    [ =stable ]
  _  php8.1                   available    [ =stable ]
 67  awscli1                  available    [ =stable ]

php7.4を停止して、php8.1を有効にする

php7.4の停止

$ sudo amazon-linux-extras disable php7.4
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]
  2  httpd_modules            available    [ =1.0  =stable ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  6  postgresql10             available    [ =10  =stable ]
  9  R3.4                     available    [ =3.4.3  =stable ]
 10  rust1                    available    \
        [ =1.22.1  =1.26.0  =1.26.1  =1.27.2  =1.31.0  =1.38.0
          =stable ]

........

 34  lynis                    available    [ =stable ]
 36  BCC                      available    [ =0.x  =stable ]
 37  mono                     available    [ =5.x  =stable ]
 38  nginx1=latest            enabled      [ =stable ]
 39  ruby2.6                  available    [ =2.6  =stable ]
 40  mock                     available    [ =stable ]
 41  postgresql11             available    [ =11  =stable ]
 42  php7.4                   available    [ =stable ]
 43  livepatch                available    [ =stable ]
 44  python3.8                available    [ =stable ]
 45  haproxy2                 available    [ =stable ]
 46  collectd                 available    [ =stable ]
 47  aws-nitro-enclaves-cli   available    [ =stable ]

........

 58  postgresql12             available    [ =stable ]
 59  postgresql13             available    [ =stable ]
 60  mock2                    available    [ =stable ]
 61  dnsmasq2.85              available    [ =stable ]
 62  kernel-5.15              available    [ =stable ]
 63  postgresql14             available    [ =stable ]
 64  firefox                  available    [ =stable ]
 65  lustre                   available    [ =stable ]
 66  php8.1                   available    [ =stable ]
 67  awscli1                  available    [ =stable ]

php7.4が停止し、php8.1が利用できるようになった。

php8.1の使用

$ sudo amazon-linux-extras enable php8.1
........

 59  postgresql13             available    [ =stable ]
 60  mock2                    available    [ =stable ]
 61  dnsmasq2.85              available    [ =stable ]
 62  kernel-5.15              available    [ =stable ]
 63  postgresql14             available    [ =stable ]
 64  firefox                  available    [ =stable ]
 65  lustre                   available    [ =stable ]
 66  php8.1=latest            enabled      [ =stable ]
 67  awscli1                  available    [ =stable ]

Now you can install:
 # yum clean metadata
 # yum install php-cli php-pdo php-fpm php-json php-mysqlnd

それぞれコマンドを実行するように記載があるので実行する

$ sudo yum clean metadata
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
リポジトリーを清掃しています: amzn2-core amzn2extra-docker amzn2extra-nginx1 amzn2extra-php8.1
17 個の metadata ファイルを削除しました
6 個の sqlite ファイルを削除しました
0 個の metadata ファイルを削除しました
$ sudo yum install php-cli php-pdo php-fpm php-json php-mysqlnd
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
amzn2-core                                                                                                                                  | 3.7 kB  00:00:00
amzn2extra-docker                                                                                                                           | 3.0 kB  00:00:00
amzn2extra-nginx1                                                                                                                           | 3.0 kB  00:00:00
amzn2extra-php8.1                                                                                                                           | 3.0 kB  00:00:00
(1/9): amzn2-core/2/x86_64/group_gz                                                                                                         | 2.5 kB  00:00:00
(2/9): amzn2-core/2/x86_64/updateinfo                                                                                                       | 539 kB  00:00:00
(3/9): amzn2extra-nginx1/2/x86_64/primary_db                                                                                                |  56 kB  00:00:00
(4/9): amzn2extra-php8.1/2/x86_64/updateinfo

........

  検証中                  : php-pdo-8.1.12-1.amzn2.x86_64                                                                                                      2/5
  検証中                  : php-common-8.1.12-1.amzn2.x86_64                                                                                                   3/5
  検証中                  : php-fpm-8.1.12-1.amzn2.x86_64                                                                                                      4/5
  検証中                  : php-cli-8.1.12-1.amzn2.x86_64                                                                                                      5/5

インストール:
  php-cli.x86_64 0:8.1.12-1.amzn2       php-common.x86_64 0:8.1.12-1.amzn2       php-fpm.x86_64 0:8.1.12-1.amzn2       php-mysqlnd.x86_64 0:8.1.12-1.amzn2
  php-pdo.x86_64 0:8.1.12-1.amzn2

完了しました!

PHP8.1がインストールされているかバージョン確認

$ php -v
PHP 8.1.12 (cli) (built: Oct 31 2022 22:06:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.12, Copyright (c) Zend Technologies

nginx と php-fpm のリスタート

$ sudo systemctl restart nginx
$ sudo systemctl restart php-fpm.service

完了!

WordPressサイトヘルスでも変更を確認!

Discussion