CentOS7のPHP 7.2をPHP 7.3にYUM経由でアップデート
PHP 7.2のアクティブサポートが2019年11月末で切れるので、PHP 7.3をインストールしたときの覚書。
環境: CentOS 7.7.1908, WordPress 5.2.3
PHPのサポート状況は公式サイトで確認
remiリポジトリの設定ファイルで切り替えるだけ。
# cd /etc/yum.repos.d/
# less remi-php73.repo
# less remi-php72.repo
アップデート実行
# yum update
PECL関連でWarning。一応メモ。
実行ユーザーを変更しているので権限再設定
# chown nginx.www -R /var/lib/php/
確認
# php --version
mecabが読み込めないので再ビルドする。
# cd /opt/software/mecab-0.996
# make clean
# ./configure --with-charset=utf8 --enable-utf8-only
# make
# make check
# make install
辞書も念のため再ビルド。こっちは「utf-8」(ハイフンがある)
# cd ../mecab-ipadic-2.7.0-20070801
# ./configure --with-charset=utf-8
# make clean
# make
# make install
PEARではなく、GitHub上のソースコードからビルドすることにした。
まずはphp-pearを削除
# yum list installed | grep php-
# yum remove php-pear
cloneしてビルド
# cd ../
# git clone https://github.com/rsky/php-mecab.git
# cd php-mecab/mecab/
# phpize
# ./configure --with-mecab=/usr/local/bin/mecab-config
# make
# make test
# make install
再インストールするときは「make clean」するのを忘れずに。
環境: CentOS 7.7.1908, WordPress 5.2.3
PHPのサポート状況は公式サイトで確認
remiリポジトリの設定ファイルで切り替えるだけ。
# cd /etc/yum.repos.d/
# less remi-php73.repo
[remi-php73]
enabled=1
# less remi-php72.repo
[remi-php72]
enabled=0
アップデート実行
# yum update
PECL関連でWarning。一応メモ。
PHP Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
PHP Stack trace:
PHP 1. {main}() /usr/share/pear/peclcmd.php:0
PHP 2. require_once() /usr/share/pear/peclcmd.php:31
PHP 3. PEAR_Command::getCommands() /usr/share/pear/pearcmd.php:54
PHP 4. PEAR_Command::registerCommands() /usr/share/pear/PEAR/Command.php:302
PHP Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
実行ユーザーを変更しているので権限再設定
# chown nginx.www -R /var/lib/php/
確認
# php --version
PHP Warning: PHP Startup: Unable to load dynamic library 'mecab.so' (tried: /usr/lib64/php/modules/mecab.so (/usr/lib64/php/modules/mecab.so: undefined symbol: _zval_ptr_dtor), /usr/lib64/php/modules/mecab.so.so (/usr/lib64/php/modules/mecab.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.3.10 (cli) (built: Sep 24 2019 09:20:18) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.10, Copyright (c) 1998-2018 Zend Technologies
with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
mecabが読み込めないので再ビルドする。
# cd /opt/software/mecab-0.996
# make clean
# ./configure --with-charset=utf8 --enable-utf8-only
# make
# make check
# make install
辞書も念のため再ビルド。こっちは「utf-8」(ハイフンがある)
# cd ../mecab-ipadic-2.7.0-20070801
# ./configure --with-charset=utf-8
# make clean
# make
# make install
PEARではなく、GitHub上のソースコードからビルドすることにした。
まずはphp-pearを削除
# yum list installed | grep php-
# yum remove php-pear
cloneしてビルド
# cd ../
# git clone https://github.com/rsky/php-mecab.git
# cd php-mecab/mecab/
# phpize
# ./configure --with-mecab=/usr/local/bin/mecab-config
# make
# make test
# make install
再インストールするときは「make clean」するのを忘れずに。
確認
# php --version
# php --ri mecab
PHPを再起動して、ログを見ながらブラウザ上で動作確認
# systemctl restart php-fpm
# journalctl -f
【関連記事】
# php --version
# php --ri mecab
mecab
MeCab Support => enabled
Module Version => 0.6.0
Version Info => Compiled => Linked
MeCab Library => 0.996 => 0.996
Directive => Local Value => Master Value
mecab.default_rcfile => no value => no value
mecab.default_dicdir => no value => no value
mecab.default_userdic => no value => no value
PHPを再起動して、ログを見ながらブラウザ上で動作確認
# systemctl restart php-fpm
# journalctl -f
【関連記事】