【CentOS6】YUM(Remi)経由でPHP5.4からPHP5.6に移行

php-54to56PHP5.4のサポートが切れるのでPHP5.6にアップグレードしたときの覚書。

環境: CentOS 6.7, PHP 5.4.44

 

目次

  1. 現状の確認とバックアップ
  2. PHP 5.6にアップグレード
  3. 日本語形態素解析「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.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

ブラウザでphpinfoを表示してその他の設定も確認しといた方がいい。

 

< Related Posts >