CentOS Stream 9 でPHPの複数バージョンをDNFで同居する方法

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

さくらのVPSにCentOS Stream 9をインストールした覚書です。

今回は、CentOS Stream 9にRemiのSoftware Collections(SCL)を使って複数バージョンのPHPをDNFでインストールします。PHP 7.4〜8.5をバージョンごとの章に分け、必要なものだけ選んで導入できるようにまとめました。

標準PHPを置き換えず、RemiリポジトリのSoftware Collections(SCL)を使用します。Apacheは既存のmod_fcgidとsuEXECをそのまま使い、サイトごとにPHPの実行ファイルを選択します。

実際の構築ではPHP 8.5とPHP 8.1を運用対象にしています。既存の標準PHP 8.1(Remi Modular版)は直ちに削除せず、SCL版PHP 8.1を別途導入します。PHPの各バージョンのインストール実行結果は、代表例としてPHP 8.5の章だけに掲載します。そのほかの章は実行コマンドを中心にまとめます。

以前、PHP 8.1をDNFでインストールした手順は、こちらの記事にまとめています。
CentOS Stream 9 にPHP8.1をDNFでインストール

ソースインストールではなくDNFによるインストールです。

PHP 7.4、8.0、8.1はPHP公式のサポートが終了しています。今回使用するRemi SCL版には、2026年10月のCVE-2026-109618、CVE-2026-109619への緩和策が取り込まれたパッケージがありますが、公式サポートの再開やすべての脆弱性の解消を意味しません。古いアプリケーションの移行・互換性確認のための選択肢として扱います。

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

環境

実施日2026-10-27
サーバさくらのVPS 2G
OS CentOS Stream 9
cat /etc/redhat-release
CentOS Stream release 9

事前確認

まずは、既存のApache、PHP、リポジトリの状態を確認します。

Apacheのバージョンです。

httpd -v
Server version: Apache/2.4.62 (CentOS Stream)
Server built:   Aug 18 2026 00:00:00

現在の標準PHPのバージョンです。

php -v
PHP 8.1.34 (cli) (built: Jul 30 2026 12:04:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.34, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.34, Copyright (c), by Zend Technologies

ApacheのMPMと、CGI実行に使用するモジュールを確認します。

httpd -M 2>/dev/null | grep -Ei "mpm_|fcgid|suexec"
 suexec_module (shared)
 mpm_event_module (shared)
 fcgid_module (shared)

Apacheのevent MPM、mod_fcgid、suEXECが読み込まれています。PHP-FPMに切り替えるのではなく、既存のCGI方式を継続します。

続いて、有効なPHPモジュールを確認します。

dnf module list php --enabled
メタデータの期限切れの最終確認: 0:03:49 前の 2026年10月27日 02時50分46秒 に実施しました。
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name                              Stream                                    Profiles                                                   Summary
php                               remi-8.1 [e]                              common [d] [i], devel, minimal                             PHP scripting language

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

標準PHPにはRemiのremi-8.1モジュールが使われています。dnf module switch-toは標準PHPを置き換えるため、今回の方法では使用しません。

SCL版で使用するremi-safeリポジトリの状態を確認します。

dnf repolist all | grep remi-safe
remi-safe                                    Safe Remi's RPM repository f 無効化
remi-safe-debuginfo                          Remi's RPM repository for En 無効化

remi-safeは無効になっています。リポジトリを常時有効に変更せず、DNF実行時だけ--enablerepo=remi-safeを付けます。

参考として、PHP 8.4とPHP 8.5を同時に指定したときの依存関係を確認します。--assumenoを指定しているため、実際のインストールは行いません。

dnf --enablerepo=remi-safe --assumeno install php84-php-cli php85-php-cli
メタデータの期限切れの最終確認: 0:05:44 前の 2026年10月27日 02時50分46秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                     バージョン                                         リポジトリー                            サイズ
=========================================================================================================================================================================================
インストール:
 php84-php-cli                                     x86_64                               8.4.27-1.el9.remi                                  remi-safe                               3.9 M
 php85-php-cli                                     x86_64                               8.5.12-1.el9.remi                                  remi-safe                               6.2 M
依存関係のインストール:
 capstone                                          x86_64                               4.0.2-12.el9                                       appstream                               755 k
 environment-modules                               x86_64                               5.3.0-3.el9                                        baseos                                  586 k
 php84-php-common                                  x86_64                               8.4.27-1.el9.remi                                  remi-safe                               769 k
 php84-runtime                                     x86_64                               8.4-1.el9.remi                                     remi-safe                               1.1 M
 php85-php-common                                  x86_64                               8.5.12-1.el9.remi                                  remi-safe                               823 k
 php85-runtime                                     x86_64                               8.5-1.el9.remi                                     remi-safe                               1.1 M
 scl-utils                                         x86_64                               1:2.0.3-4.el9                                      appstream                                37 k
 tcl                                               x86_64                               1:8.6.10-7.el9                                     baseos                                  1.1 M
 vim-filesystem                                    noarch                               2:8.2.2637-43.el9                                  baseos                                   16 k

トランザクションの概要
=========================================================================================================================================================================================
インストール  11 パッケージ

ダウンロードサイズの合計: 16 M
インストール後のサイズ: 85 M
操作が中断されました。

依存関係は解決しています。既存PHPの削除や置き換えは含まれていません。最後の「操作が中断されました。」は--assumenoを指定したためです。

共通部分のインストール

各PHPのインストールに共通するRemiリポジトリを準備します。既にEPEL、Remi、CRBを設定している場合は、ここでの再インストールは不要です。

Remiをまだ設定していない場合は、以下の記事も参考にしてください。
CentOS Stream 9 の初期設定(Remi)

EPELとRemiの導入状況を確認します。

rpm -q epel-release remi-release

未導入の場合はインストールします。

dnf install epel-release
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

CRBリポジトリを確認します。CentOS Stream 9では依存パッケージの取得に必要になるため、有効にしておきます。

dnf repolist --enabled

この環境ではCRBが有効です。無効の場合のみdnf-plugins-coreを導入し、dnf config-manager --set-enabled crbで有効にします。

dnf install dnf-plugins-core

Remiリポジトリ定義パッケージの更新時にremi-safe.repo.rpmnewが作成されました。既存の設定ではremi-safeが無効になっているため、必要な操作時だけ--enablerepo=remi-safeを指定して利用します。

今回のSCL版PHPは、php74、php80、php81、php82、php83、php84、php85のように、バージョン番号を含む別名のパッケージとして管理します。依存関係に含まれる共通パッケージはDNFが必要に応じて追加します。

標準PHPの実行ファイルを上書きするphp74-syspaths、php80-syspaths、php81-syspaths、php82-syspaths、php83-syspaths、php84-syspaths、php85-syspathsは使用しません。

ApacheからPHPを実行する方法は、mod_fcgidとsuEXECを使用します。VirtualHostの具体的な設定例は次のとおりです。ドメイン名、実行ユーザー、ディレクトリは、サイトの環境に応じて読み替えます。

<Directory "/home/example/public_html">
    Options +ExecCGI
    AddHandler fcgid-script .php
    FCGIWrapper /home/example/cgi-bin/php-cgi .php
</Directory>

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot "/home/example/public_html"
    SuexecUserGroup example example
</VirtualHost>

CGIラッパー/home/example/cgi-bin/php-cgiには、そのサイトで利用するPHPのCGI実行ファイルを指定します。既存のsuEXECの所有者・実行権限の条件を維持し、変更前にラッパーをバックアップします。既存のVirtualHostを無条件で上記設定に置き換えるものではありません。

旧バージョンの脆弱性対応状況を確認

PHP 7.4・8.0・8.1を導入する場合は、今回のCVEに対する緩和策を含むRemi版か確認します。2026年10月27日時点で確認されたバージョンは、7.4.33-31、8.0.30-21、8.1.34-6です。

dnf --enablerepo=remi-safe --assumeno install php74-php-cli php80-php-cli php81-php-cli

RPMの変更履歴に2件のCVEが記載されていることも確認します。

for version in 74 80 81; do
    echo "### PHP ${version}"
    dnf --enablerepo=remi-safe repoquery --latest-limit=1 --changelogs "php${version}-php-common" | grep -B 4 -A 1 'CVE-2026-109618'
done

Remi公式では、これらを完全な修正(fix)ではなく緩和策(mitigation)として案内しています。詳細:PHP 7.4、PHP 8.0、PHP 8.1。

以下は各バージョン単独の手順です。必要なPHPの章だけを実行します。拡張機能やphp.iniもバージョンごとに独立して設定します。

PHP 8.5を導入

PHP 8.5を、既存の標準PHPとは別にインストールします。2026年10月27日時点で導入されたバージョンは8.5.12です。

インストール

まずは依存関係を確認します。--assumenoを指定しているため、ここではインストールされません。

dnf --enablerepo=remi-safe --assumeno install php85-php-cli
メタデータの期限切れの最終確認: 0:36:59 前の 2026年10月27日 02時50分46秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                     バージョン                                         リポジトリー                            サイズ
=========================================================================================================================================================================================
インストール:
 php85-php-cli                                     x86_64                               8.5.12-1.el9.remi                                  remi-safe                               6.2 M
依存関係のインストール:
 capstone                                          x86_64                               4.0.2-12.el9                                       appstream                               755 k
 environment-modules                               x86_64                               5.3.0-3.el9                                        baseos                                  586 k
 php85-php-common                                  x86_64                               8.5.12-1.el9.remi                                  remi-safe                               823 k
 php85-runtime                                     x86_64                               8.5-1.el9.remi                                     remi-safe                               1.1 M
 scl-utils                                         x86_64                               1:2.0.3-4.el9                                      appstream                                37 k
 tcl                                               x86_64                               1:8.6.10-7.el9                                     baseos                                  1.1 M
 vim-filesystem                                    noarch                               2:8.2.2637-43.el9                                  baseos                                   16 k

トランザクションの概要
=========================================================================================================================================================================================
インストール  8 パッケージ

ダウンロードサイズの合計: 11 M
インストール後のサイズ: 59 M
操作が中断されました。

依存関係が解決したので、PHP 8.5のCLIとCGIをインストールします。

dnf --enablerepo=remi-safe install php85-php-cli
メタデータの期限切れの最終確認: 0:37:07 前の 2026年10月27日 02時50分46秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================================================================
 パッケージ                                        アーキテクチャー                     バージョン                                         リポジトリー                            サイズ
=========================================================================================================================================================================================
インストール:
 php85-php-cli                                     x86_64                               8.5.12-1.el9.remi                                  remi-safe                               6.2 M
依存関係のインストール:
 capstone                                          x86_64                               4.0.2-12.el9                                       appstream                               755 k
 environment-modules                               x86_64                               5.3.0-3.el9                                        baseos                                  586 k
 php85-php-common                                  x86_64                               8.5.12-1.el9.remi                                  remi-safe                               823 k
 php85-runtime                                     x86_64                               8.5-1.el9.remi                                     remi-safe                               1.1 M
 scl-utils                                         x86_64                               1:2.0.3-4.el9                                      appstream                                37 k
 tcl                                               x86_64                               1:8.6.10-7.el9                                     baseos                                  1.1 M
 vim-filesystem                                    noarch                               2:8.2.2637-43.el9                                  baseos                                   16 k

トランザクションの概要
=========================================================================================================================================================================================
インストール  8 パッケージ

ダウンロードサイズの合計: 11 M
インストール後のサイズ: 59 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/8): vim-filesystem-8.2.2637-43.el9.noarch.rpm                                                                                                         158 kB/s |  16 kB     00:00
(2/8): environment-modules-5.3.0-3.el9.x86_64.rpm                                                                                                        2.3 MB/s | 586 kB     00:00
(3/8): scl-utils-2.0.3-4.el9.x86_64.rpm                                                                                                                  1.2 MB/s |  37 kB     00:00
(4/8): capstone-4.0.2-12.el9.x86_64.rpm                                                                                                                  3.5 MB/s | 755 kB     00:00
(5/8): tcl-8.6.10-7.el9.x86_64.rpm                                                                                                                       3.3 MB/s | 1.1 MB     00:00
(6/8): php85-php-common-8.5.12-1.el9.remi.x86_64.rpm                                                                                                     318 kB/s | 823 kB     00:02
(7/8): php85-runtime-8.5-1.el9.remi.x86_64.rpm                                                                                                           457 kB/s | 1.1 MB     00:02
(8/8): php85-php-cli-8.5.12-1.el9.remi.x86_64.rpm                                                                                                        1.4 MB/s | 6.2 MB     00:04
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                     1.8 MB/s |  11 MB     00:05
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                                                                                                                 1/1
  インストール中   : capstone-4.0.2-12.el9.x86_64                                                                                                                                    1/8
  インストール中   : vim-filesystem-2:8.2.2637-43.el9.noarch                                                                                                                         2/8
  インストール中   : tcl-1:8.6.10-7.el9.x86_64                                                                                                                                       3/8
  インストール中   : environment-modules-5.3.0-3.el9.x86_64                                                                                                                          4/8
  scriptletの実行中: environment-modules-5.3.0-3.el9.x86_64                                                                                                                          4/8
  インストール中   : scl-utils-1:2.0.3-4.el9.x86_64                                                                                                                                  5/8
  インストール中   : php85-runtime-8.5-1.el9.remi.x86_64                                                                                                                             6/8
  scriptletの実行中: php85-runtime-8.5-1.el9.remi.x86_64                                                                                                                             6/8
  インストール中   : php85-php-common-8.5.12-1.el9.remi.x86_64                                                                                                                       7/8
  インストール中   : php85-php-cli-8.5.12-1.el9.remi.x86_64                                                                                                                          8/8
  scriptletの実行中: php85-php-cli-8.5.12-1.el9.remi.x86_64                                                                                                                          8/8
  検証中           : environment-modules-5.3.0-3.el9.x86_64                                                                                                                          1/8
  検証中           : tcl-1:8.6.10-7.el9.x86_64                                                                                                                                       2/8
  検証中           : vim-filesystem-2:8.2.2637-43.el9.noarch                                                                                                                         3/8
  検証中           : capstone-4.0.2-12.el9.x86_64                                                                                                                                    4/8
  検証中           : scl-utils-1:2.0.3-4.el9.x86_64                                                                                                                                  5/8
  検証中           : php85-php-cli-8.5.12-1.el9.remi.x86_64                                                                                                                          6/8
  検証中           : php85-php-common-8.5.12-1.el9.remi.x86_64                                                                                                                       7/8
  検証中           : php85-runtime-8.5-1.el9.remi.x86_64                                                                                                                             8/8

インストール済み:
  capstone-4.0.2-12.el9.x86_64               environment-modules-5.3.0-3.el9.x86_64        php85-php-cli-8.5.12-1.el9.remi.x86_64        php85-php-common-8.5.12-1.el9.remi.x86_64
  php85-runtime-8.5-1.el9.remi.x86_64        scl-utils-1:2.0.3-4.el9.x86_64                tcl-1:8.6.10-7.el9.x86_64                     vim-filesystem-2:8.2.2637-43.el9.noarch

完了しました!

拡張機能のインストール

既存PHPで利用している主要な拡張機能に合わせて、必要な拡張機能をDNFで追加します。imagickとxmlrpcも含めて、まとめてインストールします。

dnf --enablerepo=remi-safe install \
    php85-php-bcmath \
    php85-php-gd \
    php85-php-intl \
    php85-php-mbstring \
    php85-php-mysqlnd \
    php85-php-pdo \
    php85-php-process \
    php85-php-xml \
    php85-php-pecl-apcu \
    php85-php-pecl-imagick \
    php85-php-pecl-xmlrpc \
    php85-php-pecl-zip
メタデータの期限切れの最終確認: 0:54:00 前の 2026年10月27日 02時50分46秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================================================================
 パッケージ                                          アーキテクチャー                    バージョン                                         リポジトリー                           サイズ
=========================================================================================================================================================================================
インストール:
 php85-php-bcmath                                    x86_64                              8.5.12-1.el9.remi                                  remi-safe                               50 k
 php85-php-gd                                        x86_64                              8.5.12-1.el9.remi                                  remi-safe                               52 k
 php85-php-intl                                      x86_64                              8.5.12-1.el9.remi                                  remi-safe                              192 k
 php85-php-mbstring                                  x86_64                              8.5.12-1.el9.remi                                  remi-safe                              537 k
 php85-php-mysqlnd                                   x86_64                              8.5.12-1.el9.remi                                  remi-safe                              151 k
 php85-php-pdo                                       x86_64                              8.5.12-1.el9.remi                                  remi-safe                               98 k
 php85-php-pecl-apcu                                 x86_64                              5.1.28-1.el9.remi                                  remi-safe                               72 k
 php85-php-pecl-imagick                              x86_64                              3.8.1-4.el9.remi                                   remi-safe                              138 k
 php85-php-pecl-xmlrpc                               x86_64                              1.0.0~rc3-10.el9.remi                              remi-safe                               53 k
 php85-php-pecl-zip                                  x86_64                              1.22.8-1.el9.remi                                  remi-safe                               61 k
 php85-php-process                                   x86_64                              8.5.12-1.el9.remi                                  remi-safe                               46 k
 php85-php-xml                                       x86_64                              8.5.12-1.el9.remi                                  remi-safe                              244 k
依存関係のインストール:
 ImageMagick7-libs                                   x86_64                              1:7.1.2.34-1.el9.remi                              remi-safe                              2.6 M
 fftw-libs-double                                    x86_64                              3.3.8-14.el9                                       appstream                              909 k
 libzip                                              x86_64                              1.7.3-8.el9                                        appstream                               62 k
弱い依存関係のインストール:
 open-sans-fonts                                     noarch                              1.10-16.el9                                        appstream                              472 k

トランザクションの概要
=========================================================================================================================================================================================
インストール  16 パッケージ

ダウンロードサイズの合計: 5.6 M
インストール後のサイズ: 19 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/16): libzip-1.7.3-8.el9.x86_64.rpm                                                                                                                    499 kB/s |  62 kB     00:00
(2/16): open-sans-fonts-1.10-16.el9.noarch.rpm                                                                                                           2.1 MB/s | 472 kB     00:00
(3/16): fftw-libs-double-3.3.8-14.el9.x86_64.rpm                                                                                                         3.7 MB/s | 909 kB     00:00
(4/16): php85-php-bcmath-8.5.12-1.el9.remi.x86_64.rpm                                                                                                     39 kB/s |  50 kB     00:01
(5/16): php85-php-gd-8.5.12-1.el9.remi.x86_64.rpm                                                                                                         41 kB/s |  52 kB     00:01
(6/16): ImageMagick7-libs-7.1.2.34-1.el9.remi.x86_64.rpm                                                                                                 850 kB/s | 2.6 MB     00:03
(7/16): php85-php-intl-8.5.12-1.el9.remi.x86_64.rpm                                                                                                      112 kB/s | 192 kB     00:01
(8/16): php85-php-mbstring-8.5.12-1.el9.remi.x86_64.rpm                                                                                                  277 kB/s | 537 kB     00:01
(9/16): php85-php-mysqlnd-8.5.12-1.el9.remi.x86_64.rpm                                                                                                   544 kB/s | 151 kB     00:00
(10/16): php85-php-pdo-8.5.12-1.el9.remi.x86_64.rpm                                                                                                      364 kB/s |  98 kB     00:00
(11/16): php85-php-pecl-apcu-5.1.28-1.el9.remi.x86_64.rpm                                                                                                274 kB/s |  72 kB     00:00
(12/16): php85-php-pecl-imagick-3.8.1-4.el9.remi.x86_64.rpm                                                                                              515 kB/s | 138 kB     00:00
(13/16): php85-php-pecl-xmlrpc-1.0.0~rc3-10.el9.remi.x86_64.rpm                                                                                          203 kB/s |  53 kB     00:00
(14/16): php85-php-pecl-zip-1.22.8-1.el9.remi.x86_64.rpm                                                                                                 234 kB/s |  61 kB     00:00
(15/16): php85-php-process-8.5.12-1.el9.remi.x86_64.rpm                                                                                                  178 kB/s |  46 kB     00:00
(16/16): php85-php-xml-8.5.12-1.el9.remi.x86_64.rpm                                                                                                      131 kB/s | 244 kB     00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                     916 kB/s | 5.6 MB     00:06
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                                                                                                                 1/1
  インストール中   : php85-php-xml-8.5.12-1.el9.remi.x86_64                                                                                                                         1/16
  インストール中   : php85-php-pdo-8.5.12-1.el9.remi.x86_64                                                                                                                         2/16
  インストール中   : open-sans-fonts-1.10-16.el9.noarch                                                                                                                             3/16
  インストール中   : libzip-1.7.3-8.el9.x86_64                                                                                                                                      4/16
  インストール中   : fftw-libs-double-3.3.8-14.el9.x86_64                                                                                                                           5/16
  scriptletの実行中: ImageMagick7-libs-1:7.1.2.34-1.el9.remi.x86_64                                                                                                                 6/16
  インストール中   : ImageMagick7-libs-1:7.1.2.34-1.el9.remi.x86_64                                                                                                                 6/16
  インストール中   : php85-php-pecl-imagick-3.8.1-4.el9.remi.x86_64                                                                                                                 7/16
  インストール中   : php85-php-mysqlnd-8.5.12-1.el9.remi.x86_64                                                                                                                     8/16
  インストール中   : php85-php-pecl-xmlrpc-1.0.0~rc3-10.el9.remi.x86_64                                                                                                             9/16
  インストール中   : php85-php-process-8.5.12-1.el9.remi.x86_64                                                                                                                    10/16
  インストール中   : php85-php-pecl-zip-1.22.8-1.el9.remi.x86_64                                                                                                                   11/16
  インストール中   : php85-php-pecl-apcu-5.1.28-1.el9.remi.x86_64                                                                                                                  12/16
  インストール中   : php85-php-mbstring-8.5.12-1.el9.remi.x86_64                                                                                                                   13/16
  インストール中   : php85-php-intl-8.5.12-1.el9.remi.x86_64                                                                                                                       14/16
  インストール中   : php85-php-gd-8.5.12-1.el9.remi.x86_64                                                                                                                         15/16
  インストール中   : php85-php-bcmath-8.5.12-1.el9.remi.x86_64                                                                                                                     16/16
  scriptletの実行中: php85-php-bcmath-8.5.12-1.el9.remi.x86_64                                                                                                                     16/16
  検証中           : fftw-libs-double-3.3.8-14.el9.x86_64                                                                                                                           1/16
  検証中           : libzip-1.7.3-8.el9.x86_64                                                                                                                                      2/16
  検証中           : open-sans-fonts-1.10-16.el9.noarch                                                                                                                             3/16
  検証中           : ImageMagick7-libs-1:7.1.2.34-1.el9.remi.x86_64                                                                                                                 4/16
  検証中           : php85-php-bcmath-8.5.12-1.el9.remi.x86_64                                                                                                                      5/16
  検証中           : php85-php-gd-8.5.12-1.el9.remi.x86_64                                                                                                                          6/16
  検証中           : php85-php-intl-8.5.12-1.el9.remi.x86_64                                                                                                                        7/16
  検証中           : php85-php-mbstring-8.5.12-1.el9.remi.x86_64                                                                                                                    8/16
  検証中           : php85-php-mysqlnd-8.5.12-1.el9.remi.x86_64                                                                                                                     9/16
  検証中           : php85-php-pdo-8.5.12-1.el9.remi.x86_64                                                                                                                        10/16
  検証中           : php85-php-pecl-apcu-5.1.28-1.el9.remi.x86_64                                                                                                                  11/16
  検証中           : php85-php-pecl-imagick-3.8.1-4.el9.remi.x86_64                                                                                                                12/16
  検証中           : php85-php-pecl-xmlrpc-1.0.0~rc3-10.el9.remi.x86_64                                                                                                            13/16
  検証中           : php85-php-pecl-zip-1.22.8-1.el9.remi.x86_64                                                                                                                   14/16
  検証中           : php85-php-process-8.5.12-1.el9.remi.x86_64                                                                                                                    15/16
  検証中           : php85-php-xml-8.5.12-1.el9.remi.x86_64                                                                                                                        16/16

インストール済み:
  ImageMagick7-libs-1:7.1.2.34-1.el9.remi.x86_64                  fftw-libs-double-3.3.8-14.el9.x86_64                      libzip-1.7.3-8.el9.x86_64
  open-sans-fonts-1.10-16.el9.noarch                              php85-php-bcmath-8.5.12-1.el9.remi.x86_64                 php85-php-gd-8.5.12-1.el9.remi.x86_64
  php85-php-intl-8.5.12-1.el9.remi.x86_64                         php85-php-mbstring-8.5.12-1.el9.remi.x86_64               php85-php-mysqlnd-8.5.12-1.el9.remi.x86_64
  php85-php-pdo-8.5.12-1.el9.remi.x86_64                          php85-php-pecl-apcu-5.1.28-1.el9.remi.x86_64              php85-php-pecl-imagick-3.8.1-4.el9.remi.x86_64
  php85-php-pecl-xmlrpc-1.0.0~rc3-10.el9.remi.x86_64              php85-php-pecl-zip-1.22.8-1.el9.remi.x86_64               php85-php-process-8.5.12-1.el9.remi.x86_64
  php85-php-xml-8.5.12-1.el9.remi.x86_64

完了しました!

PHP 8.5のOPcacheはphp85-php-commonに含まれており、上記コマンドでphp85-php-opcacheを個別に指定する必要はありません。

バージョンと拡張機能の確認

標準PHPとSCL版PHPが独立していることを確認します。

php -v
PHP 8.1.34 (cli) (built: Jul 30 2026 12:04:32) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.34, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.34, Copyright (c), by Zend Technologies
php85 -v
PHP 8.5.12 (cli) (built: Oct 19 2026 17:02:46) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine #NoAI
Zend Engine v4.5.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.12, Copyright (c), by Zend Technologies
php85-cgi -v
PHP 8.5.12 (cgi-fcgi) (built: Oct 19 2026 17:02:46) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine #NoAI
Zend Engine v4.5.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.12, Copyright (c), by Zend Technologies

追加されたモジュールをCLIとCGIの両方で確認します。

php85 -m
[PHP Modules]
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
lexbor
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
uri
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache
php85-cgi -m
[PHP Modules]
apcu
bcmath
bz2
calendar
cgi-fcgi
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
lexbor
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
uri
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

php.iniの確認と設定

PHP 8.5は独立した設定ファイルを読み込みます。既存の標準PHPが参照する/etc/php.iniは変更しません。

php85 --ini
Configuration File (php.ini) Path: "/etc/opt/remi/php85"
Loaded Configuration File:         "/etc/opt/remi/php85/php.ini"
Scan for additional .ini files in: "/etc/opt/remi/php85/php.d"
Additional .ini files parsed:      /etc/opt/remi/php85/php.d/10-opcache.ini,
/etc/opt/remi/php85/php.d/20-bcmath.ini,
/etc/opt/remi/php85/php.d/20-bz2.ini,
/etc/opt/remi/php85/php.d/20-calendar.ini,
/etc/opt/remi/php85/php.d/20-ctype.ini,
/etc/opt/remi/php85/php.d/20-curl.ini,
/etc/opt/remi/php85/php.d/20-dom.ini,
/etc/opt/remi/php85/php.d/20-exif.ini,
/etc/opt/remi/php85/php.d/20-fileinfo.ini,
/etc/opt/remi/php85/php.d/20-ftp.ini,
/etc/opt/remi/php85/php.d/20-gd.ini,
/etc/opt/remi/php85/php.d/20-gettext.ini,
/etc/opt/remi/php85/php.d/20-iconv.ini,
/etc/opt/remi/php85/php.d/20-intl.ini,
/etc/opt/remi/php85/php.d/20-mbstring.ini,
/etc/opt/remi/php85/php.d/20-mysqlnd.ini,
/etc/opt/remi/php85/php.d/20-pdo.ini,
/etc/opt/remi/php85/php.d/20-phar.ini,
/etc/opt/remi/php85/php.d/20-posix.ini,
/etc/opt/remi/php85/php.d/20-shmop.ini,
/etc/opt/remi/php85/php.d/20-simplexml.ini,
/etc/opt/remi/php85/php.d/20-sqlite3.ini,
/etc/opt/remi/php85/php.d/20-sysvmsg.ini,
/etc/opt/remi/php85/php.d/20-sysvsem.ini,
/etc/opt/remi/php85/php.d/20-sysvshm.ini,
/etc/opt/remi/php85/php.d/20-tokenizer.ini,
/etc/opt/remi/php85/php.d/20-xml.ini,
/etc/opt/remi/php85/php.d/20-xmlwriter.ini,
/etc/opt/remi/php85/php.d/20-xsl.ini,
/etc/opt/remi/php85/php.d/30-mysqli.ini,
/etc/opt/remi/php85/php.d/30-pdo_mysql.ini,
/etc/opt/remi/php85/php.d/30-pdo_sqlite.ini,
/etc/opt/remi/php85/php.d/30-xmlreader.ini,
/etc/opt/remi/php85/php.d/30-xmlrpc.ini,
/etc/opt/remi/php85/php.d/30-zip.ini,
/etc/opt/remi/php85/php.d/40-apcu.ini,
/etc/opt/remi/php85/php.d/40-imagick.ini

PHP 8.5専用の設定ファイルを変更します。標準PHPの/etc/php.iniは変更しません。

タイムゾーンを Asia/Tokyo に変更します。従来の記事と同じように、sed -iで書き換えます。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php85/php.ini

OPcacheの設定ファイルを確認し、既存の設定項目のコメントアウトを解除します。設定値自体はパッケージ側に記載された値を使用します。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php85/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php85/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php85/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php85/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php85/php.d/10-opcache.ini

opcache.fast_shutdownはPHP 7.2以降で削除されているため設定しません。opcache.enable_cliはコメントを解除するだけで、値を1に変更するものではありません。

MySQLのUNIXソケットを使用する場合は、ソケットの場所を確認してから設定します。以下は/var/lib/mysql/mysql.sockの場合の例です。実際の位置が異なる場合は適宜書き換えてください。

# MySQLソケットの位置を確認
ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php85/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php85/php.ini

旧MySQL拡張向けのmysql.default_socketは、PHP 8系では使用しません。

書き換えた内容を確認します。grepではファイルの設定を、php -iではCLIで実際に反映されている値を確認します。

grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php85/php.ini
date.timezone = Asia/Tokyo
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php85/php.d/10-opcache.ini
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
php85 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'
date.timezone => Asia/Tokyo => Asia/Tokyo
mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock
opcache.enable_cli => On => On
opcache.interned_strings_buffer => 8 => 8
opcache.max_accelerated_files => 10000 => 10000
opcache.memory_consumption => 128 => 128
opcache.revalidate_freq => 2 => 2

GDの対応形式を確認

GDで利用できる画像フォーマットを確認します。

php85 -r 'print_r(gd_info());'
Array
(
    [GD Version] => 2.3.3
    [FreeType Support] => 1
    [FreeType Linkage] => with freetype
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] => 1
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 1
    [XBM Support] => 1
    [WebP Support] => 1
    [BMP Support] => 1
    [AVIF Support] => 1
    [TGA Read Support] => 1
    [JIS-mapped Japanese Font Support] =>
)

CGIラッパーの設定

PHP 8.5を利用するサイトでは、既存のCGIラッパーをバックアップしたうえで、実行先を次のように指定します。サイトごとの実行ユーザーとsuEXECの権限条件を維持してください。

#!/bin/sh
exec /usr/bin/php85-cgi

CLIとCGIの導入確認だけでは、WebサイトのPHPが8.5に切り替わったことにはなりません。Webからの確認手順は後述します。

PHP 8.4を導入

PHP 8.4だけを追加する場合は、この章を実行します。2026年10月27日時点のRemiの提供バージョンはPHP 8.4.27です。

インストール

まずはパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install php84-php-cli

問題がなければインストールします。CLI版とCGI版の実行ファイルが追加されます。

dnf --enablerepo=remi-safe install php84-php-cli

拡張機能のインストール

PHP 8.5で導入した拡張機能を基本に、同じ用途の機能を追加します。OPcacheはこのバージョンでは専用パッケージを指定します。必要な拡張機能だけを選択できます。

はじめに、利用するリポジトリとパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php84-php-bcmath \
    php84-php-gd \
    php84-php-intl \
    php84-php-mbstring \
    php84-php-mysqlnd \
    php84-php-pdo \
    php84-php-process \
    php84-php-xml \
    php84-php-pecl-apcu \
    php84-php-pecl-imagick \
    php84-php-pecl-xmlrpc \
    php84-php-pecl-zip \
    php84-php-opcache

パッケージの依存関係を確認したら、拡張機能をインストールします。

dnf --enablerepo=remi-safe install \
    php84-php-bcmath \
    php84-php-gd \
    php84-php-intl \
    php84-php-mbstring \
    php84-php-mysqlnd \
    php84-php-pdo \
    php84-php-process \
    php84-php-xml \
    php84-php-pecl-apcu \
    php84-php-pecl-imagick \
    php84-php-pecl-xmlrpc \
    php84-php-pecl-zip \
    php84-php-opcache

XML-RPCやimagickはサイトの利用状況に応じて省くこともできます。PHP 8.5と同名の拡張機能でも、パッケージや依存関係の差があり得るため、DNFの結果を確認します。

バージョンと拡張機能の確認

php84 -v
php84-cgi -v
php84 -m
php84-cgi -m
php84 -r 'print_r(gd_info());'

php.iniの設定

PHP 8.4のphp.iniは/etc/opt/remi/php84/php.iniです。設定ファイルの場所を確認します。

php84 --ini

PHP 8.4専用の設定ファイルを変更します。標準PHPの/etc/php.iniは変更しません。

タイムゾーンを Asia/Tokyo に変更します。従来の記事と同じように、sed -iで書き換えます。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php84/php.ini

OPcacheの設定ファイルを確認し、既存の設定項目のコメントアウトを解除します。設定値自体はパッケージ側に記載された値を使用します。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php84/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php84/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php84/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php84/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php84/php.d/10-opcache.ini

opcache.fast_shutdownはPHP 7.2以降で削除されているため設定しません。opcache.enable_cliはコメントを解除するだけで、値を1に変更するものではありません。

MySQLのUNIXソケットを使用する場合は、ソケットの場所を確認してから設定します。以下は/var/lib/mysql/mysql.sockの場合の例です。実際の位置が異なる場合は適宜書き換えてください。

# MySQLソケットの位置を確認
ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php84/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php84/php.ini

旧MySQL拡張向けのmysql.default_socketは、PHP 8系では使用しません。

書き換えた内容を確認します。grepではファイルの設定を、php -iではCLIで実際に反映されている値を確認します。

# php.iniの設定を確認
grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php84/php.ini

# OPcacheの設定を確認
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php84/php.d/10-opcache.ini

# 実際の設定値を確認
php84 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 8.4を使用するサイトのCGIラッパーを、次の内容にします。CGIラッパーの所有者やパーミッションはsuEXECの制約に合わせます。

#!/bin/sh
exec /usr/bin/php84-cgi

確認

標準PHPが変更されていないこと、PHP 8.4のCGIが呼び出せることを確認します。Webで実際に使われるPHPの確認方法は、後述の「動作確認」を参照してください。

php -v
php84-cgi -v

PHP 8.3を導入

PHP 8.3だけを追加する場合は、この章を実行します。2026年10月27日時点のRemiの提供バージョンはPHP 8.3.36です。

インストール

まずはパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install php83-php-cli

問題がなければインストールします。CLI版とCGI版の実行ファイルが追加されます。

dnf --enablerepo=remi-safe install php83-php-cli

拡張機能のインストール

PHP 8.5で導入した拡張機能を基本に、同じ用途の機能を追加します。OPcacheはこのバージョンでは専用パッケージを指定します。必要な拡張機能だけを選択できます。

はじめに、利用するリポジトリとパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php83-php-bcmath \
    php83-php-gd \
    php83-php-intl \
    php83-php-mbstring \
    php83-php-mysqlnd \
    php83-php-pdo \
    php83-php-process \
    php83-php-xml \
    php83-php-pecl-apcu \
    php83-php-pecl-imagick \
    php83-php-pecl-xmlrpc \
    php83-php-pecl-zip \
    php83-php-opcache

パッケージの依存関係を確認したら、拡張機能をインストールします。

dnf --enablerepo=remi-safe install \
    php83-php-bcmath \
    php83-php-gd \
    php83-php-intl \
    php83-php-mbstring \
    php83-php-mysqlnd \
    php83-php-pdo \
    php83-php-process \
    php83-php-xml \
    php83-php-pecl-apcu \
    php83-php-pecl-imagick \
    php83-php-pecl-xmlrpc \
    php83-php-pecl-zip \
    php83-php-opcache

XML-RPCやimagickはサイトの利用状況に応じて省くこともできます。PHP 8.5と同名の拡張機能でも、パッケージや依存関係の差があり得るため、DNFの結果を確認します。

バージョンと拡張機能の確認

php83 -v
php83-cgi -v
php83 -m
php83-cgi -m
php83 -r 'print_r(gd_info());'

php.iniの設定

PHP 8.3のphp.iniは/etc/opt/remi/php83/php.iniです。設定ファイルの場所を確認します。

php83 --ini

PHP 8.3専用の設定ファイルを変更します。標準PHPの/etc/php.iniは変更しません。

タイムゾーンを Asia/Tokyo に変更します。従来の記事と同じように、sed -iで書き換えます。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php83/php.ini

OPcacheの設定ファイルを確認し、既存の設定項目のコメントアウトを解除します。設定値自体はパッケージ側に記載された値を使用します。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php83/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php83/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php83/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php83/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php83/php.d/10-opcache.ini

opcache.fast_shutdownはPHP 7.2以降で削除されているため設定しません。opcache.enable_cliはコメントを解除するだけで、値を1に変更するものではありません。

MySQLのUNIXソケットを使用する場合は、ソケットの場所を確認してから設定します。以下は/var/lib/mysql/mysql.sockの場合の例です。実際の位置が異なる場合は適宜書き換えてください。

# MySQLソケットの位置を確認
ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php83/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php83/php.ini

旧MySQL拡張向けのmysql.default_socketは、PHP 8系では使用しません。

書き換えた内容を確認します。grepではファイルの設定を、php -iではCLIで実際に反映されている値を確認します。

# php.iniの設定を確認
grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php83/php.ini

# OPcacheの設定を確認
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php83/php.d/10-opcache.ini

# 実際の設定値を確認
php83 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 8.3を使用するサイトのCGIラッパーを、次の内容にします。CGIラッパーの所有者やパーミッションはsuEXECの制約に合わせます。

#!/bin/sh
exec /usr/bin/php83-cgi

確認

標準PHPが変更されていないこと、PHP 8.3のCGIが呼び出せることを確認します。Webで実際に使われるPHPの確認方法は、後述の「動作確認」を参照してください。

php -v
php83-cgi -v

PHP 8.2を導入

PHP 8.2だけを追加する場合は、この章を実行します。2026年10月27日時点のRemiの提供バージョンはPHP 8.2.35です。

インストール

まずはパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install php82-php-cli

問題がなければインストールします。CLI版とCGI版の実行ファイルが追加されます。

dnf --enablerepo=remi-safe install php82-php-cli

拡張機能のインストール

PHP 8.5で導入した拡張機能を基本に、同じ用途の機能を追加します。OPcacheはこのバージョンでは専用パッケージを指定します。必要な拡張機能だけを選択できます。

はじめに、利用するリポジトリとパッケージの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php82-php-bcmath \
    php82-php-gd \
    php82-php-intl \
    php82-php-mbstring \
    php82-php-mysqlnd \
    php82-php-pdo \
    php82-php-process \
    php82-php-xml \
    php82-php-pecl-apcu \
    php82-php-pecl-imagick \
    php82-php-pecl-xmlrpc \
    php82-php-pecl-zip \
    php82-php-opcache

パッケージの依存関係を確認したら、拡張機能をインストールします。

dnf --enablerepo=remi-safe install \
    php82-php-bcmath \
    php82-php-gd \
    php82-php-intl \
    php82-php-mbstring \
    php82-php-mysqlnd \
    php82-php-pdo \
    php82-php-process \
    php82-php-xml \
    php82-php-pecl-apcu \
    php82-php-pecl-imagick \
    php82-php-pecl-xmlrpc \
    php82-php-pecl-zip \
    php82-php-opcache

XML-RPCやimagickはサイトの利用状況に応じて省くこともできます。PHP 8.5と同名の拡張機能でも、パッケージや依存関係の差があり得るため、DNFの結果を確認します。

バージョンと拡張機能の確認

php82 -v
php82-cgi -v
php82 -m
php82-cgi -m
php82 -r 'print_r(gd_info());'

php.iniの設定

PHP 8.2のphp.iniは/etc/opt/remi/php82/php.iniです。設定ファイルの場所を確認します。

php82 --ini

PHP 8.2専用の設定ファイルを変更します。標準PHPの/etc/php.iniは変更しません。

タイムゾーンを Asia/Tokyo に変更します。従来の記事と同じように、sed -iで書き換えます。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php82/php.ini

OPcacheの設定ファイルを確認し、既存の設定項目のコメントアウトを解除します。設定値自体はパッケージ側に記載された値を使用します。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php82/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php82/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php82/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php82/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php82/php.d/10-opcache.ini

opcache.fast_shutdownはPHP 7.2以降で削除されているため設定しません。opcache.enable_cliはコメントを解除するだけで、値を1に変更するものではありません。

MySQLのUNIXソケットを使用する場合は、ソケットの場所を確認してから設定します。以下は/var/lib/mysql/mysql.sockの場合の例です。実際の位置が異なる場合は適宜書き換えてください。

# MySQLソケットの位置を確認
ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php82/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php82/php.ini

旧MySQL拡張向けのmysql.default_socketは、PHP 8系では使用しません。

書き換えた内容を確認します。grepではファイルの設定を、php -iではCLIで実際に反映されている値を確認します。

# php.iniの設定を確認
grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php82/php.ini

# OPcacheの設定を確認
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php82/php.d/10-opcache.ini

# 実際の設定値を確認
php82 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 8.2を使用するサイトのCGIラッパーを、次の内容にします。CGIラッパーの所有者やパーミッションはsuEXECの制約に合わせます。

#!/bin/sh
exec /usr/bin/php82-cgi

確認

標準PHPが変更されていないこと、PHP 8.2のCGIが呼び出せることを確認します。Webで実際に使われるPHPの確認方法は、後述の「動作確認」を参照してください。

php -v
php82-cgi -v

PHP 8.2の公式セキュリティサポートは2026年12月31日までです。互換性確認や移行用途を中心に使用し、長期運用する場合はサポート期間内のバージョンへの移行を検討します。

PHP 8.1を導入

PHP 8.1をRemiのSCL版として追加します。既存のModular版PHP 8.1は削除せずに残せます。今回の脆弱性への緩和策を含むRPMは8.1.34-6です。PHP公式のサポートは終了しているため、常用する場合は残るセキュリティリスクを評価し、新しいPHPへの移行を優先してください。

インストール

まず、パッケージのバージョンと依存関係を確認します。--assumenoのため、ここではインストールしません。

dnf --enablerepo=remi-safe --assumeno install php81-php-cli

インストール候補のバージョンとRPMの更新履歴を確認し、今回の緩和策を含むことを確かめたうえでインストールします。既存のphpコマンドは変更しません。

dnf --enablerepo=remi-safe install php81-php-cli

拡張機能のインストール

PHP 8.5と同じ用途の拡張機能を基本構成として追加します。XML-RPCなど、PHPのバージョンによってパッケージ名が異なります。ImagickやZIPなど必要のない機能は省略できます。

まずはDNFの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php81-php-bcmath \
    php81-php-gd \
    php81-php-intl \
    php81-php-mbstring \
    php81-php-mysqlnd \
    php81-php-pdo \
    php81-php-process \
    php81-php-xml \
    php81-php-pecl-apcu \
    php81-php-pecl-imagick \
    php81-php-pecl-xmlrpc \
    php81-php-pecl-zip \
    php81-php-opcache

問題がなければ、同じパッケージをインストールします。

dnf --enablerepo=remi-safe install \
    php81-php-bcmath \
    php81-php-gd \
    php81-php-intl \
    php81-php-mbstring \
    php81-php-mysqlnd \
    php81-php-pdo \
    php81-php-process \
    php81-php-xml \
    php81-php-pecl-apcu \
    php81-php-pecl-imagick \
    php81-php-pecl-xmlrpc \
    php81-php-pecl-zip \
    php81-php-opcache

パッケージ名や依存関係はRemiの更新により変わる場合があります。導入前の--assumenoで内容を確認します。

バージョンと拡張機能の確認

php81 -v
php81-cgi -v
php81 -m
php81-cgi -m
php81 --ini
php81 -r 'print_r(gd_info());'

php.iniの確認と設定

PHP 8.1の設定ファイルは/etc/opt/remi/php81/php.iniです。既存の標準PHPの/etc/php.iniとは別に管理されます。

タイムゾーンをAsia/Tokyoに変更します。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php81/php.ini

OPcacheは設定ファイルにある既存値のコメントを解除します。opcache.fast_shutdownはPHP 7.2以降で削除されたため使用しません。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php81/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php81/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php81/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php81/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php81/php.d/10-opcache.ini

MySQLのUNIXソケットを利用する場合は、その場所を確認します。以下は/var/lib/mysql/mysql.sockを使用する例です。

ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php81/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php81/php.ini

設定を確認します。

grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php81/php.ini
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php81/php.d/10-opcache.ini
php81 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 8.1を使用するサイトでは、そのサイトのCGIラッパーの実行先を次のように指定します。suEXECで使用するユーザー、所有者、権限を維持してください。

#!/bin/sh
exec /usr/bin/php81-cgi

切り替え後は実際のWebアクセスでPHPのバージョンを確認します。確認方法は後述の「動作確認」を参照してください。

PHP 8.0を導入

PHP 8.0をRemiのSCL版として追加します。今回の脆弱性への緩和策を含むRPMは8.0.30-21です。PHP公式のサポートは終了しています。常用する場合は残るセキュリティリスクを評価し、新しいPHPへの移行を優先してください。

インストール

まず、パッケージのバージョンと依存関係を確認します。--assumenoのため、ここではインストールしません。

dnf --enablerepo=remi-safe --assumeno install php80-php-cli

インストール候補が8.0.30-21以上の対応RPMであることを確認し、問題がなければインストールします。既存のphpコマンドは変更しません。

dnf --enablerepo=remi-safe install php80-php-cli

拡張機能のインストール

PHP 8.5と同じ用途の拡張機能を基本構成として追加します。XML-RPCなど、PHPのバージョンによってパッケージ名が異なります。ImagickやZIPなど必要のない機能は省略できます。

まずはDNFの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php80-php-bcmath \
    php80-php-gd \
    php80-php-intl \
    php80-php-mbstring \
    php80-php-mysqlnd \
    php80-php-pdo \
    php80-php-process \
    php80-php-xml \
    php80-php-pecl-apcu \
    php80-php-pecl-imagick \
    php80-php-pecl-xmlrpc \
    php80-php-pecl-zip \
    php80-php-opcache

問題がなければ、同じパッケージをインストールします。

dnf --enablerepo=remi-safe install \
    php80-php-bcmath \
    php80-php-gd \
    php80-php-intl \
    php80-php-mbstring \
    php80-php-mysqlnd \
    php80-php-pdo \
    php80-php-process \
    php80-php-xml \
    php80-php-pecl-apcu \
    php80-php-pecl-imagick \
    php80-php-pecl-xmlrpc \
    php80-php-pecl-zip \
    php80-php-opcache

パッケージ名や依存関係はRemiの更新により変わる場合があります。導入前の--assumenoで内容を確認します。

バージョンと拡張機能の確認

php80 -v
php80-cgi -v
php80 -m
php80-cgi -m
php80 --ini
php80 -r 'print_r(gd_info());'

php.iniの確認と設定

PHP 8.0の設定ファイルは/etc/opt/remi/php80/php.iniです。既存の標準PHPの/etc/php.iniとは別に管理されます。

タイムゾーンをAsia/Tokyoに変更します。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php80/php.ini

OPcacheは設定ファイルにある既存値のコメントを解除します。opcache.fast_shutdownはPHP 7.2以降で削除されたため使用しません。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php80/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php80/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php80/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php80/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php80/php.d/10-opcache.ini

MySQLのUNIXソケットを利用する場合は、その場所を確認します。以下は/var/lib/mysql/mysql.sockを使用する例です。

ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php80/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php80/php.ini

設定を確認します。

grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php80/php.ini
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php80/php.d/10-opcache.ini
php80 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 8.0を使用するサイトでは、そのサイトのCGIラッパーの実行先を次のように指定します。suEXECで使用するユーザー、所有者、権限を維持してください。

#!/bin/sh
exec /usr/bin/php80-cgi

切り替え後は実際のWebアクセスでPHPのバージョンを確認します。確認方法は後述の「動作確認」を参照してください。

PHP 7.4を導入

PHP 7.4をRemiのSCL版として追加します。今回の脆弱性への緩和策を含むRPMは7.4.33-31です。PHP公式のサポートは終了しています。常用する場合は残るセキュリティリスクを評価し、新しいPHPへの移行を優先してください。

インストール

まず、パッケージのバージョンと依存関係を確認します。--assumenoのため、ここではインストールしません。

dnf --enablerepo=remi-safe --assumeno install php74-php-cli

インストール候補が7.4.33-31以上の対応RPMであることを確認し、問題がなければインストールします。既存のphpコマンドは変更しません。

dnf --enablerepo=remi-safe install php74-php-cli

拡張機能のインストール

PHP 8.5と同じ用途の拡張機能を基本構成として追加します。XML-RPCなど、PHPのバージョンによってパッケージ名が異なります。ImagickやZIPなど必要のない機能は省略できます。

まずはDNFの依存関係を確認します。

dnf --enablerepo=remi-safe --assumeno install \
    php74-php-bcmath \
    php74-php-gd \
    php74-php-intl \
    php74-php-mbstring \
    php74-php-mysqlnd \
    php74-php-pdo \
    php74-php-process \
    php74-php-xml \
    php74-php-pecl-apcu \
    php74-php-pecl-imagick \
    php74-php-xmlrpc \
    php74-php-pecl-zip \
    php74-php-opcache

問題がなければ、同じパッケージをインストールします。

dnf --enablerepo=remi-safe install \
    php74-php-bcmath \
    php74-php-gd \
    php74-php-intl \
    php74-php-mbstring \
    php74-php-mysqlnd \
    php74-php-pdo \
    php74-php-process \
    php74-php-xml \
    php74-php-pecl-apcu \
    php74-php-pecl-imagick \
    php74-php-xmlrpc \
    php74-php-pecl-zip \
    php74-php-opcache

パッケージ名や依存関係はRemiの更新により変わる場合があります。導入前の--assumenoで内容を確認します。

バージョンと拡張機能の確認

php74 -v
php74-cgi -v
php74 -m
php74-cgi -m
php74 --ini
php74 -r 'print_r(gd_info());'

php.iniの確認と設定

PHP 7.4の設定ファイルは/etc/opt/remi/php74/php.iniです。既存の標準PHPの/etc/php.iniとは別に管理されます。

タイムゾーンをAsia/Tokyoに変更します。

# タイムゾーンを Asia/Tokyo に変更
sed -i -e "s|^[;[:space:]]*date\.timezone[[:space:]]*=.*$|date.timezone = Asia/Tokyo|g" /etc/opt/remi/php74/php.ini

OPcacheは設定ファイルにある既存値のコメントを解除します。opcache.fast_shutdownはPHP 7.2以降で削除されたため使用しません。

# OPcacheの設定(既存の設定値を使用)
sed -i -e "s/^;opcache.memory_consumption=/opcache.memory_consumption=/g" /etc/opt/remi/php74/php.d/10-opcache.ini
sed -i -e "s/^;opcache.interned_strings_buffer=/opcache.interned_strings_buffer=/g" /etc/opt/remi/php74/php.d/10-opcache.ini
sed -i -e "s/^;opcache.max_accelerated_files=/opcache.max_accelerated_files=/g" /etc/opt/remi/php74/php.d/10-opcache.ini
sed -i -e "s/^;opcache.revalidate_freq=/opcache.revalidate_freq=/g" /etc/opt/remi/php74/php.d/10-opcache.ini
sed -i -e "s/^;opcache.enable_cli=/opcache.enable_cli=/g" /etc/opt/remi/php74/php.d/10-opcache.ini

MySQLのUNIXソケットを利用する場合は、その場所を確認します。以下は/var/lib/mysql/mysql.sockを使用する例です。

ls -l /var/lib/mysql/mysql.sock
# MySQLソケットの設定
sed -i -e "s|^[;[:space:]]*mysqli\.default_socket[[:space:]]*=.*$|mysqli.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php74/php.ini
sed -i -e "s|^[;[:space:]]*pdo_mysql\.default_socket[[:space:]]*=.*$|pdo_mysql.default_socket = /var/lib/mysql/mysql.sock|g" /etc/opt/remi/php74/php.ini

設定を確認します。

grep -E '^[;[:space:]]*(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket)[[:space:]]*=' /etc/opt/remi/php74/php.ini
grep -E '^[;[:space:]]*opcache\.(memory_consumption|interned_strings_buffer|max_accelerated_files|revalidate_freq|enable_cli)=' /etc/opt/remi/php74/php.d/10-opcache.ini
php74 -i | grep -E '^(date\.timezone|mysqli\.default_socket|pdo_mysql\.default_socket|opcache\.memory_consumption|opcache\.interned_strings_buffer|opcache\.max_accelerated_files|opcache\.revalidate_freq|opcache\.enable_cli) =>'

CGIラッパーの設定

PHP 7.4を使用するサイトでは、そのサイトのCGIラッパーの実行先を次のように指定します。suEXECで使用するユーザー、所有者、権限を維持してください。

#!/bin/sh
exec /usr/bin/php74-cgi

切り替え後は実際のWebアクセスでPHPのバージョンを確認します。確認方法は後述の「動作確認」を参照してください。

動作確認

Apacheの設定を変更した場合は、まず構文を確認します。

httpd -t

Webサイトから実行されるPHPのバージョンは、CLIではなくWeb経由で確認します。CGIラッパーを変更したサイトに次の確認用PHPファイルを一時的に配置します。

<?php
header('Content-Type: text/plain; charset=UTF-8');
echo PHP_VERSION, "\n";
echo PHP_SAPI, "\n";
?>

確認用ファイルはアクセス制限を行ったうえで使用し、確認後は削除します。ラッパーを変更してもmod_fcgidの既存プロセスが残る場合があるため、実際に応答しているPHPを確認します。

また、cronなどでPHPを実行している場合は、Web用のCGIラッパーとは別に使用するPHPのパスを確認します。

元のPHPに戻す場合

PHPを切り替えたサイトを以前の標準PHPに戻すには、そのサイトのCGIラッパーを元に戻します。パッケージをアンインストールする必要はありません。

#!/bin/sh
exec /usr/bin/php-cgi

戻した後もWebからバージョンを確認します。

定期的なメンテナンス

RemiのSCL版PHPもDNFで更新します。remi-safeを通常は無効にしているため、更新するときに指定します。

dnf upgrade --refresh --enablerepo=remi-safe

PHPだけを対象にする場合は、インストールしたバージョンのコマンドを選択します。

PHP 8.5の場合です。

dnf --enablerepo=remi-safe update 'php85*'

PHP 8.4の場合です。

dnf --enablerepo=remi-safe update 'php84*'

PHP 8.3の場合です。

dnf --enablerepo=remi-safe update 'php83*'

PHP 8.2の場合です。

dnf --enablerepo=remi-safe update 'php82*'

PHP 8.1の場合です。

dnf --enablerepo=remi-safe update 'php81*'

PHP 8.0の場合です。

dnf --enablerepo=remi-safe update 'php80*'

PHP 7.4の場合です。

dnf --enablerepo=remi-safe update 'php74*'

PHPのサポート期間とCentOS Stream 9のサポート期間を確認し、バージョンアップとOS移行を計画します。

参考:PHPのサポート対象バージョン、Remiの2026年10月22日のリリース情報