PHP 8.2から8.0 にダウングレード

先日、PHP 8.2「CentOS 9系でPHP 8.2を使用する」にバージョンアップしたのですが、php-zipで依存関係でエラーとなり色々とやったのですが、解消しません。

$ php -v
PHP Warning:  Module "imagick" is already loaded in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library 'zip.so' (tried: /usr/lib64/php/modules/zip.so (/usr/lib64/php/modules/zip.so: undefined symbol: zip_file_is_seekable), /usr/lib64/php/modules/zip.so.so (/usr/lib64/php/modules/zip.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 8.2.8 (cli) (built: Jul  4 2023 14:52:54) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.8, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.8, Copyright (c), by Zend Technologies

仕方なくPHP 8.2からPHP 8.0にバージョンを戻すことにしたのでその手順を紹介します

1.モジュールリストを初期化します

$ sudo dnf module reset php
Last metadata expiration check: 0:57:48 ago on Tue 25 Jul 2023 10:45:13 AM JST.
Dependencies resolved.
============================================================================================
 Package              Architecture        Version                Repository            Size
============================================================================================
Resetting modules:
 php                                                                                       

Transaction Summary
============================================================================================

Is this ok [y/N]: y
Complete!

2.モジュールリストが初期化されたことを確認

$ dnf module list php
CentOS Stream 9 - AppStream
Name         Stream          Profiles                          Summary                      
php          8.1             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        common [d], devel, minimal        PHP scripting language       
php          remi-8.2        common [d], devel, minimal        PHP scripting language

3.現在インストールしているPHP関係のパッケージを確認します。
インストールされたPHPは一旦削除するので、インストールされているものはメモしておきます

$ dnf list installed | grep php
gd3php.x86_64                               2.3.3-9.el9.remi                 @remi        
oniguruma5php.x86_64                        6.9.8-1.el9.remi                 @remi        
php.x86_64                                  8.1.21-1.el9.remi                @remi-modular
php-bcmath.x86_64                           8.1.21-1.el9.remi                @remi-modular
php-cli.x86_64                              8.1.21-1.el9.remi                @remi-modular

4.PHP及び関係するパッケージを一旦削除します

$ sudo dnf remove php*

5.PHP関係のファイルを再度インストールします。PHPのモジュールをリセットしているのでPHP8.0でインストールされるはずです

# wordpress関連のPHPをインストールします
$ sudo dnf install php php-mbstring php-pear php-mysqlnd php-gd php-pecl-zip php-json
$ sudo dnf install php-pecl-memcache

# nextcloud関連のPHPをインストールします
$ sudo dnf install php php-mbstring php-pear php-mysqlnd php-gd php-pecl-zip php-json php-gmp php-imagick  php-bcmath php-intl

6.PHPのバージョンを確認します

$ php -v
PHP 8.0.27 (cli) (built: Jan  3 2023 16:17:26) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.27, Copyright (c), by Zend Technologies

 

 

スポンサーリンク

0
0