【CentOS6】YUM(Remi)経由でPHP5.4からPHP5.6に移行
PHP5.4のサポートが切れるのでPHP5.6にアップグレードしたときの覚書。
環境: CentOS 6.7, PHP 5.4.44
目次
- 現状の確認とバックアップ
- PHP 5.6にアップグレード
- 日本語形態素解析「MeCab」を再インストール
1.現状の確認とバックアップ
PHP 5.5と5.6の変更点を確認
インストールされているパッケージを一覧表示
# yum list installed | grep php
php.x86_64 5.4.44-1.el6.remi @remi
php-cli.x86_64 5.4.44-1.el6.remi @remi
php-common.x86_64 5.4.44-1.el6.remi @remi
php-devel.x86_64 5.4.44-1.el6.remi @remi
php-fpm.x86_64 5.4.44-1.el6.remi @remi
php-gd.x86_64 5.4.44-1.el6.remi @remi
php-mbstring.x86_64 5.4.44-1.el6.remi @remi
php-mcrypt.x86_64 5.4.44-1.el6.remi @remi
php-mysqlnd.x86_64 5.4.44-1.el6.remi @remi
php-pdo.x86_64 5.4.44-1.el6.remi @remi
php-pear.noarch 1:1.9.5-13.el6.remi @remi
php-pecl-igbinary.x86_64 1.2.1-1.el6.remi.5.4 @remi
php-pecl-memcache.x86_64 3.0.8-2.el6.remi.5.4 @remi
php-pecl-mongo.x86_64 1.6.11-1.el6.remi.5.4 @remi
php-pecl-msgpack.x86_64 0.5.6-1.el6.remi.5.4 @remi
php-pecl-redis.x86_64 2.2.7-1.el6.remi.5.4 @remi
php-pecl-xdebug.x86_64 2.3.3-1.el6.remi.5.4 @remi
php-process.x86_64 5.4.44-1.el6.remi @remi
php-xml.x86_64 5.4.44-1.el6.remi @remi
開発環境はVMware上で動いているので、スナップショットをとっておく。
2.PHP 5.6にアップグレード
yumの設定ファイルを編集して「remi-php56」を有効にする
# vi /etc/yum.repos.d/remi.repo
[remi-php56]
name=Les RPM de remi de PHP 5.6 pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/php56/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
アップグレード
# yum update
Warningがたくさん出るので心配になる。
確認
# php --version
PHP Warning: PHP Startup: apc: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20131226
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: mecab: Unable to initialize module
Module compiled with module API=20100525
PHP compiled with module API=20131226
These options need to match
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/phalcon.so' - /usr/lib64/php/modules/phalcon.so: undefined symbol: zend_unmangle_property_name in Unknown on line 0
PHP 5.6.12 (cli) (built: Aug 6 2015 17:14:56)
APC、Mecab、Phalconのエクステンションがうまく動かないらしい。
とりあえずそれぞれ読み込まないように削除
# cd /etc/php.d/
# rm -f apc.ini mecab.ini phalcon.ini
確認
# php --version
PHP 5.6.12 (cli) (built: Aug 6 2015 17:14:56)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Xdebug v2.3.3, Copyright (c) 2002-2015, by Derick Rethans
再起動
# /etc/rc.d/init.d/nginx restart
# /etc/rc.d/init.d/php-fpm restart
実行ユーザーを変更しているので、sessionの書き込みディレクトリの権限を変更
# chown nginx.www -R /var/lib/php/
ブラウザで動くか確認。
思ったより表示速度が速くなっている気がする。
3.日本語形態素解析「MeCab」を再インストール
APCはredisに置き換えるとして、mecabは使用中のプロジェクトがあるので再インストールする。
一旦削除する必要があった
# pear uninstall opendogs/mecab-0.5.0
# pear install opendogs/mecab-0.5.0
specify pathname to mecab-config [no] : /usr/local/bin/mecab-config
# echo "extension=mecab.so" > /etc/php.d/mecab.ini
再起動
# /etc/rc.d/init.d/php-fpm restart
確認
# php --ri mecab
mecab
MeCab Support => enabled
Module Version => 0.5.0Version Info => Compiled => Linked
MeCab Library => 0.996 => 0.996Directive => 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
ブラウザでphpinfoを表示してその他の設定も確認しといた方がいい。
< Related Posts >