CentOS 8 Streamにおいて、yum module install php:remi-8.0した際、以下のエラーメッセージが発生しました。
結論から書くと、dnf update php-pearすることで、PHP Fatal errorがでなくなることを確認しました。
[状況]
CentOS Linux 8 - AppStreamのPHP7.3を運用中。
Remi's Modular repository for Enterprise Linux 8のPHP8.0に切り替え。
[手順]
# yum update epel-release # yum module list php # sudo rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-8.rpm # sudo rpm --import http://rpms.remirepo.net/RPM-GPG-KEY-remi # sudo yum config-manager --set-enabled remi # sudo yum module reset php # sudo yum module list php # sudo yum module install php:remi-8.0
[エラーメッセージの状況]
# sudo yum module install php:remi-8.0
Last metadata expiration check: 0:00:28 ago on Sun 14 Mar 2021 08:51:28 AM JST.
Dependencies resolved.
============================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================
Upgrading:
libzip x86_64 1.7.3-1.el8.remi remi-modular 66 k
php-cli x86_64 8.0.3-1.el8.remi remi-modular 4.7 M
php-common x86_64 8.0.3-1.el8.remi remi-modular 1.2 M
replacing php-json.x86_64 7.3.20-1.module_el8.2.0+498+4deef2f1
php-devel x86_64 8.0.3-1.el8.remi remi-modular 1.2 M
php-fpm x86_64 8.0.3-1.el8.remi remi-modular 1.6 M
php-gd x86_64 8.0.3-1.el8.remi remi-modular 100 k
php-mbstring x86_64 8.0.3-1.el8.remi remi-modular 523 k
php-opcache x86_64 8.0.3-1.el8.remi remi-modular 762 k
php-pdo x86_64 8.0.3-1.el8.remi remi-modular 153 k
php-pecl-zip x86_64 1.19.2-1.el8.remi.8.0 remi-modular 71 k
php-pgsql x86_64 8.0.3-1.el8.remi remi-modular 144 k
php-process x86_64 8.0.3-1.el8.remi remi-modular 104 k
php-xml x86_64 8.0.3-1.el8.remi remi-modular 236 k
Installing dependencies:
libxml2-devel x86_64 2.9.7-8.el8 appstream 1.0 M
oniguruma5php x86_64 6.9.6-1.el8.remi remi-safe 208 k
php-fedora-autoloader noarch 1.0.1-2.el8.remi remi-modular 13 k
xz-devel x86_64 5.2.4-3.el8 baseos 62 k
Installing weak dependencies:
php-nikic-php-parser4 noarch 4.10.4-1.el8.remi remi 164 k
Installing module profiles:
php/common
Enabling module streams:
php remi-8.0
Transaction Summary
============================================================================================================================
Install 5 Packages
Upgrade 13 Packages
(中略)
Cleanup : libzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64 32/32
Running scriptlet: libzip-1.5.2-1.module_el8.2.0+314+53b99e08.x86_64 32/32
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/pear/PEAR/Config.php on line 2095
(中略)
[PHP Fatal errorが出る原因]
/usr/share/pear/PEAR/Config.phpの2095行目は以下のようになっていました。
} elseif ($prepend{0} != '\\') {PHP7.4で上記の書き方は廃止され、
} elseif ($prepend[0] != '\\') {
と書く必要があります。
修正すると、PHP Fatal errorが解消されることを確認しました。
pearのVerをあげれば解消されるとふんだので、以下のようにpearをupdateしました。
# pear list PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/pear/PEAR/Config.php on line 2095 # rpm -qa | grep pear php-pear-1.10.9-1.module_el8.2.0+314+53b99e08.noarch # dnf update php-pear Last metadata expiration check: 2:56:06 ago on Sun 14 Mar 2021 03:45:12 PM JST. Dependencies resolved. ============================================================================================================================ Package Architecture Version Repository Size ============================================================================================================================ Upgrading: php-pear noarch 1:1.10.12-5.el8.remi remi-modular 365 k # pear list Installed packages, channel pear.php.net: ========================================= Package Version State Archive_Tar 1.4.12 stable Console_Getopt 1.4.3 stable PEAR 1.10.12 stable PEAR_Manpages 1.10.0 stable Structures_Graph 1.1.1 stable XML_Util 1.4.5 stable
pear listコマンドもPHP Fatal errorで実行できませんでしたが、php-pearを1:1.10.12-5.el8.remiにすることでPHP Fatal errorが解消いたしました。