画像やリンクが無効になっている可能性もあるのでご了承下さい。
PHP 5 系から 7.0 への移行では全体的な高速化が成されているとのことで動作検証が終わり次第、即移行をしてみたが 7.1 に関しては無頓着だった。
昨晩改めて 7.0 から 7.1 への移行をするメリットがなんか無いかなと調べたら OPCache が早くなっているとの情報があったので、ホストしている WordPress やその他 PHP の絡むソフトに悪影響が無いか検証した後に移行させた。
検証作業
現行で稼働しているホストの内容をまるっとクローン化した物を VMWare 上でも動くようにした検証環境があるので、そちらで先に以下の移行作業を行った上で各種動作確認を行い、問題がないと判断したあと本番環境でも同じ作業を行う。
オンラインマニュアルに目を通すと一部下位互換性の無くなる部分もあるようなので、検証はやらないとマズい。
移行作業
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 といったソフトは問題無く動作している。
コメント