AlmaLinux 9 に PHP をインストールする

先日、仕事で CentOS 7 で運用していた Webサーバーを AlmaLinux 9 にリプレースする案件があり、その際に調べた記事を Pocket へ突っ込んでいたのですが、Pocket に突っ込んだ記事は整理を兼ねて「AlmaLinux 9 に PHP をインストールする方法」についてまとめておきます。同じことを何度も調べ直すことになりそうでもあるので……。

まずは dnf コマンド

RHEL 系ディストリビューション は 8 からパッケージ管理システムが yum から dnf に置き換わっています。一応、yumdnf のエイリアスとして、これまで通り使えるのですが、同じ内容でWeb検索をかけると dnf でサンプルが書かれているので、ざっくりとでも事前に dnf について調べたり触れておくことをオススメします。

なお、yumdnf のエイリアスとして、これまで通り使えると書きましたけど、dnf にはあって yum にはなかったサブコマンドでも

yum module list php

とか書けたりしますw

利用可能な PHP モジュール調べる

調べるモジュール (今回は PHP) が明確な場合は、

dnf module list php

を実行すると、利用可能な PHP モジュールの一覧が表示されます。 AlmaLinux 9 の場合、

Last metadata expiration check: 17:42:41 ago on Tue 03 Sep 2024 02:28:50 PM UTC.
AlmaLinux 9 - AppStream
Name               	Stream               	Profiles                                 	Summary
php                	8.1                  	common [d], devel, minimal               	PHP scripting language
php                	8.2                  	common [d], devel, minimal               	PHP scripting language

と返るので、8.1 と 8.2 のいずれかが利用可能であることが分かります。また、Profiles の部分から、どちらも common, devel, minimal というプロファイルがあり、ともに [d] が付いている common が初期プロファイルであることが分かります。

common, devel, minimal というプロファイルはそれぞれ、どんなパッケージを含むの?ってことを調べるには、

dnf module info php:8.2 --profile

で調べられます。結果は以下の通り。

Last metadata expiration check: 1:15:16 ago on Wed 04 Sep 2024 07:32:09 AM UTC.
Name    : php:8.2:9040020240403183013:8cf767d6:x86_64
common  : php-cli
        : php-common
        : php-fpm
        : php-mbstring
        : php-xml
devel   : php-cli
        : php-common
        : php-devel
        : php-fpm
        : php-mbstring
        : php-pecl-zip
        : php-process
        : php-xml
minimal : php-cli
        : php-common

PHP のインストール

ここでは PHP 8.2 を最小構成でインストールすることにします。

sudo dnf module -y enable php:8.2

Last metadata expiration check: 1:22:52 ago on Wed 04 Sep 2024 07:32:09 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!

引き続き、

sudo dnf module -y install php:8.2/minimal

Last metadata expiration check: 1:23:27 ago on Wed 04 Sep 2024 07:32:09 AM UTC.
Dependencies resolved.
====================================================================================================================================
 Package                   Architecture          Version                                             Repository                Size 
====================================================================================================================================
Installing group/module packages:
 php-cli                   x86_64                8.2.13-1.module_el9.4.0+65+49ff6472                 appstream                3.6 M 
 php-common                x86_64                8.2.13-1.module_el9.4.0+65+49ff6472                 appstream                682 k 
Installing module profiles:
 php/minimal

Transaction Summary
====================================================================================================================================
Install  2 Packages

Total download size: 4.2 M
Installed size: 24 M
Downloading Packages:
(1/2): php-common-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64.rpm                                    2.2 MB/s | 682 kB     00:00     
(2/2): php-cli-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64.rpm                                       9.6 MB/s | 3.6 MB     00:00     
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                               3.8 MB/s | 4.2 MB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                            1/1 
  Installing       : php-common-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64                                                      1/2 
  Installing       : php-cli-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64                                                         2/2 
  Running scriptlet: php-cli-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64                                                         2/2 
  Verifying        : php-cli-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64                                                         1/2 
  Verifying        : php-common-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64                                                      2/2 

Installed:
  php-cli-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64              php-common-8.2.13-1.module_el9.4.0+65+49ff6472.x86_64

Complete!

で、最小構成の PHP8.2 がインストールされます。

php -v

PHP 8.2.13 (cli) (built: Nov 21 2023 09:55:59) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.13, Copyright (c) Zend Technologies

以上です!!