PHP 7.0 から 7.1 への移行を行った

本記事は最終更新日より 1 年以上経過しております。
スポンサーリンク

 PHP 5 系から 7.0 への移行では全体的な高速化が成されているとのことで動作検証が終わり次第、即移行をしてみたが 7.1 に関しては無頓着だった。
 昨晩改めて 7.0 から 7.1 への移行をするメリットがなんか無いかなと調べたら OPCache が早くなっているとの情報があったので、ホストしている WordPress やその他 PHP の絡むソフトに悪影響が無いか検証した後に移行させた。

検証作業

 現行で稼働しているホストの内容をまるっとクローン化した物を VMWare 上でも動くようにした検証環境があるので、そちらで先に以下の移行作業を行った上で各種動作確認を行い、問題がないと判断したあと本番環境でも同じ作業を行う。
 オンラインマニュアルに目を通すと一部下位互換性の無くなる部分もあるようなので、検証はやらないとマズい。

PHP: PHP 7.0.x から PHP 7.1.x への移行 - Manual

移行作業

REMI リポジトリの変更

 筆者宅の CentOS 7.3 なサーバーでは PHP の導入に remi-php70 のリポジトリを用いていたので、これを使用せず remi-php71 の方を使うように変更をする。

yum-config-manager --disable remi-php70
yum-config-manager --enable remi-php71

 こうしてもいいし “/etc/yum.repos.d/remi-php7{0,1}.repo” のファイルをそれぞれ直接編集して有効化/無効化しても良い。

yum update で一発

 ”yum check-update” でアップデートされる内容を念のため確認してから “yum -y update” でどかんとやってしまう。

不要パッケージの erase

 一部手動で対応しなくてはいけないパッケージがあった。
 もし php -v として Warning が出たらモジュールが不整合を起こしてると思うのでこの対応を行う。

php -v
PHP Warning:  PHP Startup: smbclient: Unable to initialize module
Module compiled with module API=20151012
PHP    compiled with module API=20160303
These options need to match
 in Unknown on line 0
PHP 7.1.4 (cli) (built: Apr 11 2017 19:36:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies

 何がどうおかしいかはパッケージを探すと一目瞭然で、PHP 7.0 のモジュールが残存している。

rpm -qa | grep php70 | sort
php70-php-common-7.0.18-1.el7.remi.x86_64
php70-php-json-7.0.18-1.el7.remi.x86_64
php70-php-smbclient-0.9.0-1.el7.remi.x86_64
php70-runtime-1.0-5.el7.remi.x86_64

 筆者の場合、インストールされているモジュールの関係上この 4 つが残ったのでこれらを yum erase したあと、PHP 7.1 のモジュールを入れ直す。
 ただし php-common と php-json は PHP 7.1 の物がインストールされており、php-smbclient だけが 7.0 のままだったのでインストールする形になった。

yum erase 'php70*'
yum install php-smbclient

移行完了

 php -v として Warning が出ない事が確認できれば取り敢えず PHP 本体とモジュール周りは大丈夫なハズ。

php -v
PHP 7.1.4 (cli) (built: Apr 11 2017 19:36:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.1.4, Copyright (c) 1999-2017, by Zend Technologies

 次にホストしている WordPress やら PHP を用いたソフトの最終的な動作確認を行う事。
 現状、WordPress 4.7 や Nextcloud 11 と yourls といったソフトは問題無く動作している。

スポンサーリンク