概要
RHEL9からはリポジトリ標準のphpのバージョンを変更できる。
割とよくやる作業だけどやり方が覚えられないので備忘録。
環境
- OS : Miracle Linux 9.2
- phpバージョン: 8.0 → 8.1
ポイント
- dnf moduleを利用します
- 既存のphpをアンインストールすることなくシームレスにバージョンアップが可能です
- ただし設定ファイルは再設定が必要
手順
現状のphpバージョンの確認
まず現行のバージョンを確認しておく。今回の場合php8.0.30です。
# php -v
PHP 8.0.30 (cli) (built: Aug 3 2023 17:13:08) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies
切り替え可能なphpバージョンの確認
dnf module
コマンドで切り替え可能なphpバージョンを確認します。
今回は8.1のみですが、remiリポジトリなどを読み込んでいれば他のバージョンも候補に上がってくるはずです。
# dnf module list php
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled
現在のphpモジュールのリセット
切り替え前に現在のphpモジュールのバージョンをリセットしておきます。
# dnf module reset php
phpモジュールを切り替える
phpモジュールの切り替えを行います。今回はphp:8.1
に切り替えます。
# dnf module enable php:8.1
===============================================================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================================================================================================
モジュールストリームの有効化中:
php 8.1
トランザクションの概要
===============================================================================================================================================================================================================================================================================
これでよろしいですか? [y/N]: y
完了しました!
新しいバージョンのphpをインストール
新しいバージョンのphpをインストール(アップグレード)します。このとき、既存のphpをアンインストールする必要はありません。
# dnf install php
===============================================================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
===============================================================================================================================================================================================================================================================================
アップグレード:
php x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 10 k
php-cli x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 3.5 M
php-common x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 668 k
php-devel x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 681 k
php-fpm x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 1.8 M
php-mbstring x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 473 k
php-opcache x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 376 k
php-pdo x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 84 k
php-pecl-zip x86_64 1.20.1-1.module+el9+1008+29511cc9 9-latest-AppStream 55 k
php-pgsql x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 75 k
php-process x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 42 k
php-xml x86_64 8.1.14-1.module+el9+1008+29511cc9 9-latest-AppStream 140 k
トランザクションの概要
===============================================================================================================================================================================================================================================================================
アップグレード 12 パッケージ
ダウンロードサイズの合計: 7.8 M
これでよろしいですか? [y/N]: y
...
完了しました!
バージョンが新しくなっていることを確認
再度、php -v
コマンドでバージョンを確認すると、8.1.14に上がっていることがわかります。
# php -v
PHP 8.1.14 (cli) (built: Jan 4 2023 17:23:14) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.14, Copyright (c) Zend Technologies
with Zend OPcache v8.1.14, Copyright (c), by Zend Technologies
/etc/php.iniは旧バージョンのものが維持されます。必要に応じて新バージョンのphp.iniに切り替えや、設定の変更をしてください。