CentOS9 で、PHP8.2のモジュールに切り替えでエラー
Contents
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
ディスカッション
コメント一覧
まだ、コメントがありません