PHPのバージョンを5.3.3から5.5系に変える
CentOSのバージョンは6.5、PHPのバージョンは5.3.3であることを確認。
$ sudo yum update $ cat /etc/redhat-release CentOS release 6.5 (Final) $ php -v PHP 5.3.3 (cli) (built: Aug 6 2014 05:54:27) Copyright (c) 1997-2010 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
php5.5はremiリポジトリからアップデートするので、まずはremiリポジトリを追加する。
$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
リポジトリの優先順位を変更できるyum-plugin-prioritiesをインストールする。
$ sudo yum install yum-plugin-priorities
標準のリポジトリにない場合のみremiリポジトリを利用するようにしたいので、remiリポジトリは普段は無効にしておく。yum-plugin-prioritiesでremiリポジトリの優先度を標準リポジトリよりも高くしておくことで、yum install --enablerepo=remi
やyum update --enablerepo=remi
で必要に応じてremiリポジトリを有効にして優先利用することができるようになる。
まずは先ほどインストールしたyum-plugin-prioritiesでリポジトリの優先度を指定する。
標準リポジトリは/etc/yum.repos.d/CentOS-Base.repo
に[base]や[updates]などいくつか記載されているので、その全てにpriority=2
を追記する。priorityの数値は低いほうが優先度が高い。ちなみに未指定だとデフォルトでpriority=99になるらしい。
$ sudo vim /etc/yum.repos.d/CentOS-Base.repo [base] priority=2 hogehoge [updates] priority=2 hogehoge . . .
続いてremiリポジトリの優先度設定を行う。remiリポジトリの設定は/etc/yum.repos.d/remi.repo
に記載されているので、その中のすべてのリポジトリにpriority=1
を追記する。この際各リポジトリがenabled=0
になっているかも確認する。(デフォルトでは無効になっているはず)
$ sudo vim /etc/yum.repos.d/remi.repo [remi] priority=1 ... enabled=0 ... [remi-php55] ← php5.5はこのリポジトリからインストールされるので、このリポジトリがちゃんと記載されているか確認。 priority=1 ... enabled=0 ... . . .
更新予定のパッケージをyum info php --enablerepo=remi-php55,remi
で確認する。
$ sudo yum info php --enablerepo=remi-php55,remi Installed Packages Name : php Arch : x86_64 Version : 5.3.3 Release : 27.el6_5.1 Size : 3.5 M Repo : installed From repo : updates Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP Description : PHP is an HTML-embedded scripting language. PHP attempts to make : it easy for developers to write dynamically generated webpages. : PHP also offers built-in database integration for several : commercial and non-commercial database management systems, so : writing a database-enabled webpage with PHP is fairly simple. The : most common use of PHP coding is probably as a replacement for CGI : scripts. : : The php package contains the module which adds support for the PHP : language to Apache HTTP Server. Available Packages Name : php Arch : x86_64 Version : 5.5.17 Release : 2.el6.remi Size : 2.6 M Repo : remi-php55 Summary : PHP scripting language for creating dynamic web sites URL : http://www.php.net/ License : PHP and Zend and BSD Description : PHP is an HTML-embedded scripting language. PHP attempts to make : it easy for developers to write dynamically generated web pages. : PHP also offers built-in database integration for several : commercial and non-commercial database management systems, so : writing a database-enabled webpage with PHP is fairly simple. The : most common use of PHP coding is probably as a replacement for CGI : scripts. : : The php package contains the module (often referred to as mod_php) : which adds support for the PHP language to Apache HTTP Server.
これでちゃんとphp5.5.17がインストール可能であることが分かる。なおyum info php --enablerepo=remi
で標準remiリポジトリのみを確認するとPHP5.4.33が更新可能となっていた。
一応yum check-update
で更新予定のパッケージ一覧を確認してみる。
$ sudo yum check-update --enablerepo=remi-php55,remi mysql.x86_64 5.5.40-1.el6.remi remi mysql-libs.x86_64 5.5.40-1.el6.remi remi mysql-server.x86_64 5.5.40-1.el6.remi remi php.x86_64 5.5.17-2.el6.remi remi-php55 php-bcmath.x86_64 5.5.17-2.el6.remi remi-php55 php-cli.x86_64 5.5.17-2.el6.remi remi-php55 php-common.x86_64 5.5.17-2.el6.remi remi-php55 php-devel.x86_64 5.5.17-2.el6.remi remi-php55 php-eaccelerator.x86_64 1:1.0-0.6.git42067ac.el6.remi remi-php55 php-gd.x86_64 5.5.17-2.el6.remi remi-php55 php-mbstring.x86_64 5.5.17-2.el6.remi remi-php55 php-mcrypt.x86_64 5.5.17-2.el6.remi remi-php55 php-mysql.x86_64 5.4.33-2.el6.remi remi php-pdo.x86_64 5.5.17-2.el6.remi remi-php55 php-pear.noarch 1:1.9.5-3.el6.remi remi php-php-gettext.noarch 1.0.11-4.el6.remi remi php-tcpdf.noarch 6.0.093-1.el6.remi remi php-tcpdf-dejavu-sans-fonts.noarch 6.0.093-1.el6.remi remi php-tidy.x86_64 5.5.17-2.el6.remi remi-php55 php-xml.x86_64 5.5.17-2.el6.remi remi-php55 phpMyAdmin.noarch 4.2.9-1.el6.remi remi Obsoleting Packages php-mysqlnd.x86_64 5.5.17-2.el6.remi remi-php55 php-mysql.x86_64 5.3.3-27.el6_5.1 @updates
というわけでようやくphp5.3.3からphp5.5.17にアップデートを行う。
$ sudo yum update php --enablerepo=remi-php55,remi Error: Package: php-mysql-5.4.33-2.el6.remi.x86_64 (remi) Requires: php-pdo(x86-64) = 5.4.33-2.el6.remi Removing: php-pdo-5.3.3-27.el6_5.1.x86_64 (@updates) php-pdo(x86-64) = 5.3.3-27.el6_5.1 Updated By: php-pdo-5.5.17-2.el6.remi.x86_64 (remi-php55) php-pdo(x86-64) = 5.5.17-2.el6.remi Available: php-pdo-5.4.33-1.el6.remi.x86_64 (remi) php-pdo(x86-64) = 5.4.33-1.el6.remi Available: php-pdo-5.4.33-2.el6.remi.x86_64 (remi) php-pdo(x86-64) = 5.4.33-2.el6.remi Available: php-pdo-5.5.17-1.el6.remi.x86_64 (remi-php55) php-pdo(x86-64) = 5.5.17-1.el6.remi You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
うまくいかない。もちろんphp -v
もPHP5.3.3のまま。ここらへんで投げ出したくなるも、エスパーの力でその昔入れたeAcceleratorが原因なんじゃないかと推測。根拠もないままphp-eacceleratorを削除して再度PHPアップデートを試みる。
$ sudo yum remove php-eaccelerator $ sudo yum update php --enablerepo=remi-php55,remi Error: Package: php-mysql-5.4.33-2.el6.remi.x86_64 (remi) Requires: php-pdo(x86-64) = 5.4.33-2.el6.remi Removing: php-pdo-5.3.3-27.el6_5.1.x86_64 (@updates) php-pdo(x86-64) = 5.3.3-27.el6_5.1 Updated By: php-pdo-5.5.17-2.el6.remi.x86_64 (remi-php55) php-pdo(x86-64) = 5.5.17-2.el6.remi Available: php-pdo-5.4.33-1.el6.remi.x86_64 (remi) php-pdo(x86-64) = 5.4.33-1.el6.remi Available: php-pdo-5.4.33-2.el6.remi.x86_64 (remi) php-pdo(x86-64) = 5.4.33-2.el6.remi Available: php-pdo-5.5.17-1.el6.remi.x86_64 (remi-php55) php-pdo(x86-64) = 5.5.17-1.el6.remi You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
うまくいかない。たぶんこの最後あたりにかいてある英文メッセージに重要な情報書いてあるのかもしれないけど読む気力この時点ですでになし。ここで更にエスパーのひらめきがあったのだが、もしかしたらphp5.3系からphp5.5系には直接アップデートできないのかもしれない???一度php5.4系へアップデートをする必要がある????
そこで標準remiリポジトリのみを使ってphp5.4系にアップデートを試みた。
$ sudo yum update php --enablerepo=remi ... Dependency Updated: mysql.x86_64 0:5.5.40-1.el6.remi mysql-libs.x86_64 0:5.5.40-1.el6.remi mysql-server.x86_64 0:5.5.40-1.el6.remi php-bcmath.x86_64 0:5.4.33-2.el6.remi php-cli.x86_64 0:5.4.33-2.el6.remi php-common.x86_64 0:5.4.33-2.el6.remi php-devel.x86_64 0:5.4.33-2.el6.remi php-gd.x86_64 0:5.4.33-2.el6.remi php-mbstring.x86_64 0:5.4.33-2.el6.remi php-mcrypt.x86_64 0:5.4.33-2.el6.remi php-mysql.x86_64 0:5.4.33-2.el6.remi php-pdo.x86_64 0:5.4.33-2.el6.remi php-tidy.x86_64 0:5.4.33-2.el6.remi php-xml.x86_64 0:5.4.33-2.el6.remi Complete! $ php -v PHP 5.4.33 (cli) (built: Sep 20 2014 16:20:03) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
うおおおよくわかんないけどうまくいった。つまり今度こそは…
$ sudo yum update php --enablerepo=remi-php55,remi Installed: php-mysqlnd.x86_64 0:5.5.17-2.el6.remi Dependency Installed: gd-last.x86_64 0:2.1.0-3.el6.remi libvpx.x86_64 0:1.3.0-0.el6.remi php-channel-phpseclib.noarch 0:1.3-1.el6.remi php-gmp.x86_64 0:5.5.17-2.el6.remi php-pecl-jsonc.x86_64 0:1.3.6-1.el6.remi.5.5.1 php-pecl-jsonc-devel.x86_64 0:1.3.6-1.el6.remi.5.5.1 php-pecl-zip.x86_64 0:1.12.4-1.el6.remi.5.5 php-phpseclib-crypt-aes.noarch 0:0.3.8-1.el6.remi php-phpseclib-crypt-base.noarch 0:0.3.8-1.el6.remi php-phpseclib-crypt-rijndael.noarch 0:0.3.8-1.el6.remi php-recode.x86_64 0:5.5.17-2.el6.remi recode.x86_64 0:3.6-28.1.el6 Updated: php.x86_64 0:5.5.17-2.el6.remi Dependency Updated: php-bcmath.x86_64 0:5.5.17-2.el6.remi php-cli.x86_64 0:5.5.17-2.el6.remi php-common.x86_64 0:5.5.17-2.el6.remi php-devel.x86_64 0:5.5.17-2.el6.remi php-gd.x86_64 0:5.5.17-2.el6.remi php-mbstring.x86_64 0:5.5.17-2.el6.remi php-mcrypt.x86_64 0:5.5.17-2.el6.remi php-pdo.x86_64 0:5.5.17-2.el6.remi php-tidy.x86_64 0:5.5.17-2.el6.remi php-xml.x86_64 0:5.5.17-2.el6.remi phpMyAdmin.noarch 0:4.2.9-1.el6.remi Replaced: php-mysql.x86_64 0:5.4.33-2.el6.remi Complete! $ php -v PHP 5.5.17 (cli) (built: Sep 20 2014 17:12:00) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
半日費やしてようやくPHP5.3.3からPHP5.5.17へのアップデートが完了した。
eAcceleratorに気がついたのは、某ブログのphp5.5アップデート記事で事前にAPCを削除していたため。もしかしたらeAcceleratorもphp5.5に対応してないんじゃないかと思い公式サイトを見たら案の定5.4までしか対応していないようだった(しかも5.4対応版を使用する場合はソースからコンパイルしなきゃいけないめんどい)。
追記
MySQLに問題発生しました。↓