CentOS9 で、PHP8.2のモジュールに切り替えでエラー

CentOS9 で、PHP8.2にバージョンアップで「Error: It is not possible to switch enabled streams~」のエラー

CentOS 9でPHP 8.1から8.2にバージョンアップしようと「dnf module enable php:remi-8.2」のコマンドを実行すると下記のエラーが発生しました

$ sudo dnf module enable php:remi-8.2
Last metadata expiration check: 0:25:23 ago on Mon 21 Oct 2024 10:07:04 AM JST.
Dependencies resolved.
The operation would result in switching of module 'php' stream 'remi-8.1' to stream 'remi-8.2'
Error: It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.
It is recommended to rather remove all installed content from the module, 
and reset the module using 'dnf module reset <module_name>' command. After you reset the module, 
you can install the other stream.

原因ですが、CentOS Stream 9では、PHPモジュールの有効なストリームを直接切り替えることができないようです。CentOSのセキュリティ対策として、このような制限がかけられているようです
私は、CentOS Stream 9で発生しましたが、同じRHEL9 系でも同じようなエラーが発生するかもしれません

既存のPHPを削除して、新しいPHPをインストール

PHPモジュールのバージョンを直接切り替えられないので、既存のPHP → モジュールリセット → 新しいバージョンのPHPをインストールする下記の手順で実行すると新しいバージョンのPHPをインストールします。下記ではphp 8.1からphp 8.3にバージョンアップしています

1.既存のPHPパッケージ一覧をrpmコマンドで確認します。この後にphpを一旦削除するので、インストールPHPモジュールはメモしておくことをお勧めします

$  rpm -qa|grep php
php-fedora-autoloader-1.0.1-7.el9.noarch
gd3php-2.3.3-9.el9.remi.x86_64
php-pecl-imagick-im6-3.7.0-7.el9.remi.8.1.x86_64
php-pecl-memcache-8.2-1.el9.remi.8.1.x86_64
oniguruma5php-6.9.9-1.el9.remi.x86_64
php-pear-1.10.15-3.el9.remi.noarch
php-pecl-igbinary-3.2.16-1.el9.remi.8.1.x86_64
# 以下、省略

# インストールできるphpモジュールリストを確認します。remiを利用すると8.4までインストールできるようです
$ sudo dnf module list php
Last metadata expiration check: 0:24:56 ago on Mon 21 Oct 2024 10:07:04 AM JST.
CentOS Stream 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   

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name     Stream          Profiles                      Summary                  
php      remi-7.4        common [d], devel, minimal    PHP scripting language   
php      remi-8.0        common [d], devel, minimal    PHP scripting language   
php      remi-8.1 [e]    common [d], devel, minimal    PHP scripting language   
php      remi-8.2        common [d], devel, minimal    PHP scripting language   
php      remi-8.3        common [d], devel, minimal    PHP scripting language   
php      remi-8.4        common [d], devel, minimal    PHP scripting language   

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

2.一旦、既存のphpを削除します

$ sudo dnf remove php

3.phpモジュールをリセットします

$ sudo dnf module reset php

4.新しいバージョンのphpをインストールします

# 有効なPHPモジュールをremi-8.3に確認します
$ sudo dnf module enable php:remi-8.3
$ sudo dnf install php

5.apache、php-fpmを再起動します

$ sudo systemctl restart httpd
$ sudo systemctl restart php-fpm

 

スポンサーリンク

0
0