CentOS-8のremi レポジトリーのphp-7.3をphp-7.4にアップデートする
毎度、ググっても出てこない小ネタを取り扱っております。
本記事は個人的な見解であり、筆者の所属するいかなる団体にも関係ございません。
0. はじめに
CentOS-8 で動いているPHP7.3をPHP7.4にアップデートした、というなんのヒネりもない話です。
※補足:NextcloudはPHPで動くサーバーアプリケーションですが、remiレポジトリーのPHPをこれまでずっと使ってきました。CentOS-8でも、ありがたく使わせて頂いているわけですが、CentOS-8になってからPHPのバージョン毎のレポジトリーの切り替え方法がちょっと変わっていて、その話です。
1. インストールされているPHP
インストールされているPHPは、remi-php7.3
です。
dnf module info
で確認します。
streamのremi-7.3に[e] [a]
が付いていて、enabledでactiveだというのを示しています。
dnf module info php:remi-7.3
Last metadata expiration check: 0:46:59 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Name : php
Stream : remi-7.3 [e] [a]
Version : 20201125071936
Context : 00000000
Architecture : x86_64
Profiles : common [d], devel, minimal
Default profiles : common
Repo : remi-modular
Summary : PHP scripting language
Description : Alternative php 7.3 module. The remi-7.3 stream provides more recent versions and more packages than default 7.3 stream.
Requires : platform:[el8]
<<<--- 略 --->>>
インストールされているPHPパッケージのリスト
# yum list installed php\*
Installed Packages
php-bcmath.x86_64 7.3.25-1.el8.remi @remi-modular
php-cli.x86_64 7.3.25-1.el8.remi @remi-modular
php-common.x86_64 7.3.25-1.el8.remi @remi-modular
php-devel.x86_64 7.3.25-1.el8.remi @remi-modular
php-fpm.x86_64 7.3.25-1.el8.remi @remi-modular
php-gd.x86_64 7.3.25-1.el8.remi @remi-modular
php-gmp.x86_64 7.3.25-1.el8.remi @remi-modular
php-intl.x86_64 7.3.25-1.el8.remi @remi-modular
php-json.x86_64 7.3.25-1.el8.remi @remi-modular
php-ldap.x86_64 7.3.25-1.el8.remi @remi-modular
php-mbstring.x86_64 7.3.25-1.el8.remi @remi-modular
php-mysqlnd.x86_64 7.3.25-1.el8.remi @remi-modular
php-opcache.x86_64 7.3.25-1.el8.remi @remi-modular
php-pdo.x86_64 7.3.25-1.el8.remi @remi-modular
php-pecl-apcu.x86_64 5.1.19-1.el8.remi.7.3 @remi-modular
php-pecl-igbinary.x86_64 3.1.6-1.el8.remi.7.3 @remi-modular
php-pecl-imagick.x86_64 3.4.4-10.el8.remi.7.3 @remi-modular
php-pecl-mcrypt.x86_64 1.0.3-1.el8.remi.7.3 @remi-modular
php-pecl-redis4.x86_64 4.3.0-2.el8.remi.7.3 @remi-modular
php-pecl-zip.x86_64 1.19.2-1.el8.remi.7.3 @remi-modular
php-process.x86_64 7.3.25-1.el8.remi @remi-modular
php-smbclient.x86_64 1.0.0-1.el8.remi.7.3 @remi-modular
php-soap.x86_64 7.3.25-1.el8.remi @remi-modular
php-xml.x86_64 7.3.25-1.el8.remi @remi-modular
2. remi php-7.3モジュールをresetする
dnf module reset php:remi-7.3
Last metadata expiration check: 0:49:13 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Only module name is required. Ignoring unneeded information in argument: 'php:remi-7.3'
Dependencies resolved.
=======================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================
Resetting modules:
php
Transaction Summary
=======================================================================================================================================================
Is this ok [y/N]: y
Complete!
dnf module reset php:remi-7.3
Last metadata expiration check: 0:49:13 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Only module name is required. Ignoring unneeded information in argument: 'php:remi-7.3'
Dependencies resolved.
=======================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================
Resetting modules:
php
Transaction Summary
=======================================================================================================================================================
Is this ok [y/N]: y
Complete!
dnf module reset php
でよかったみたい。。
3. remi php-7.4を有効化する
dnf module enable php:remi-7.4
Last metadata expiration check: 0:49:39 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Dependencies resolved.
=======================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================
Enabling module streams:
php remi-7.4
Transaction Summary
=======================================================================================================================================================
Is this ok [y/N]: y
Complete!
4. インストールされたモジュールを確認する
# dnf module info php:remi-7.4
Last metadata expiration check: 1:06:47 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Name : php
Stream : remi-7.4 [e] [a]
Version : 20201125071937
Context : 00000000
Architecture : x86_64
Profiles : common [d], devel, minimal
Default profiles : common
Repo : remi-modular
Summary : PHP scripting language
Description : Alternative php 7.4 module. The remi-7.4 stream provides more recent versions and more packages than default 7.4 stream.
Requires : platform:[el8]
--- 略 ---
5. パッケージをphp-7.4にアップデートする
dnf module enable php:remi-7.4
Last metadata expiration check: 0:49:39 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Dependencies resolved.
=======================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================
Enabling module streams:
php remi-7.4
Transaction Summary
=======================================================================================================================================================
Is this ok [y/N]: y
Complete!
# dnf module info php:remi-7.4
Last metadata expiration check: 1:06:47 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Name : php
Stream : remi-7.4 [e] [a]
Version : 20201125071937
Context : 00000000
Architecture : x86_64
Profiles : common [d], devel, minimal
Default profiles : common
Repo : remi-modular
Summary : PHP scripting language
Description : Alternative php 7.4 module. The remi-7.4 stream provides more recent versions and more packages than default 7.4 stream.
Requires : platform:[el8]
--- 略 ---
5. パッケージをphp-7.4にアップデートする
yum update
でインストールされているパッケージがPHP7.3のものからPHP7.4へアップデートされる。
yum update
Last metadata expiration check: 1:10:53 ago on Wed 25 Nov 2020 05:43:05 PM JST.
Dependencies resolved.
=======================================================================================================================================================
Package Architecture Version Repository Size
=======================================================================================================================================================
Installing:
php-pecl-redis5 x86_64 5.3.2-1.el8.remi.7.4 remi-modular 265 k
replacing php-pecl-redis4.x86_64 4.3.0-2.el8.remi.7.3
Upgrading:
php-bcmath x86_64 7.4.13-1.el8.remi remi-modular 83 k
php-cli x86_64 7.4.13-1.el8.remi remi-modular 4.6 M
php-common x86_64 7.4.13-1.el8.remi remi-modular 1.2 M
php-devel x86_64 7.4.13-1.el8.remi remi-modular 1.1 M
php-fpm x86_64 7.4.13-1.el8.remi remi-modular 1.6 M
php-gd x86_64 7.4.13-1.el8.remi remi-modular 92 k
php-gmp x86_64 7.4.13-1.el8.remi remi-modular 83 k
php-intl x86_64 7.4.13-1.el8.remi remi-modular 241 k
php-json x86_64 7.4.13-1.el8.remi remi-modular 76 k
php-ldap x86_64 7.4.13-1.el8.remi remi-modular 96 k
php-mbstring x86_64 7.4.13-1.el8.remi remi-modular 528 k
php-mysqlnd x86_64 7.4.13-1.el8.remi remi-modular 259 k
php-opcache x86_64 7.4.13-1.el8.remi remi-modular 335 k
php-pdo x86_64 7.4.13-1.el8.remi remi-modular 143 k
php-pecl-apcu x86_64 5.1.19-1.el8.remi.7.4 remi-modular 83 k
php-pecl-igbinary x86_64 3.1.6-1.el8.remi.7.4 remi-modular 161 k
php-pecl-imagick x86_64 3.4.4-10.el8.remi.7.4 remi-modular 182 k
php-pecl-mcrypt x86_64 1.0.3-1.el8.remi.7.4 remi-modular 35 k
php-pecl-zip x86_64 1.19.2-1.el8.remi.7.4 remi-modular 66 k
php-process x86_64 7.4.13-1.el8.remi remi-modular 98 k
php-smbclient x86_64 1.0.0-7.el8.remi.7.4 remi-modular 50 k
php-soap x86_64 7.4.13-1.el8.remi remi-modular 227 k
php-xml x86_64 7.4.13-1.el8.remi remi-modular 214 k
Installing dependencies:
php-pecl-msgpack x86_64 2.1.1-1.el8.remi.7.4 remi-modular 65 k
Transaction Summary
=======================================================================================================================================================
Install 2 Packages
Upgrade 23 Packages
Total download size: 12 M
Is this ok [y/N]:
6. 念のため、.rpmnewファイルを確認しておく
問題ないと思うが、rpmnewファイルが2つできているのでdiffを取って確認する
warning: /etc/php.ini created as /etc/php.ini.rpmnew
warning: /etc/php.d/10-opcache.ini created as /etc/php.d/10-opcache.ini.rpmnew
/etc/php.iniは、2カ所修正
/etc/php.d/10-opcache.iniは、問題なかった
phpのバージョンを確認しておく
# php -v
PHP 7.4.13 (cli) (built: Nov 24 2020 10:03:34) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies
# php-fpm -v
PHP 7.4.13 (fpm-fcgi) (built: Nov 24 2020 10:03:34)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies
7. 問題ないのでサービスを起動する
systemctl start php-fpm
systemctl start nginx
8. 障害対応
systemctl start php-fpm
systemctl start nginx
Nextcloudでログインしようとしたが、ログインできなくなっていた。
どうも、パスワードハッシュのタイプが変わってしまっていて、
php-sodium.x86_64
が必要になっていた。
PHP: 下位互換性のない変更点 - Manual
https://www.php.net/manual/ja/migration74.incompatible.php
Unable to login after Fedora 31>32 upgrade · Issue #21100 · nextcloud/server
https://github.com/nextcloud/server/issues/21100
Author And Source
この問題について(CentOS-8のremi レポジトリーのphp-7.3をphp-7.4にアップデートする), 我々は、より多くの情報をここで見つけました https://qiita.com/ynott/items/bc09903de31af65eaf63著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .