CentOS5.10にてPHP5.5を使ってみたくなった。
というのも、PHP5.5からはOPcacheというものがあって、別途php-opcacheパッケージをインストールすると処理速度が上がるという情報をゲットしたので早速してみた。
追記: php5.5による高速化に関してはエックスサーバーのこちらの説明がわかりやすかったです。 またまた情報共有ありがとうございます。 便乗して広告も貼っておこう。RAID10で?FastCGI利用だって?
以前 [CentOS6] PHP5.3からPHP5.4にバージョンアップしましたの巻 にて、CentOS6でのPHPバージョンアップに関しては記事を書いていたのですが、今回はCentOS5.10にてPHP5.5にアップデートする方法を書いてみたいと思います。
CentOS5.10にてPHP5.5にアップデート(yum replace)する方法
今回も面倒くさいのでyumでの操作を行いました。
参考にしたのはこちらのサイト
http://www.webtatic.com/packages/php55/
phpに依存するパッケージがある場合は [CentOS6] PHP5.3からPHP5.4にバージョンアップしましたの巻 にて解説している方法の方がいいと思います。理由は、yum replaceを行うとPHPに依存しているパッケージが削除されてしまうからです。yumに、「–nodeps」オプションがあったらーという感じなのですが、用意されていないのでもし依存するパッケージがあって、それらが削除されたあとに再インストールするのが怖い方は、rpm -e –nodepsを用いてphpとその他もろもろを削除したあとにyum installでphp5.5をインストールする方法をお勧めします。といっても、yum replaceの方が楽だなぁーという場合は、yum replaceしちゃってから依存するプログラムをインストールし直してもいいかもしれません。ちなみにyumに「–nodeps」オプションがない理由に関してはこちら(英語)のサイトに記載がありました。興味がある方は見てみてください。要約すると、依存関係を考慮してインストールするためのコマンドで、–nodepsや–forceを使ったときの影響が大きいため、使いたい人はrpmコマンドとかその他の回避策を使ってくれってことです。
さて、本題に移ります。(まえがきの方が長いww)
1.yumのレポジトリを追加
# rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
2.yumのプラグインをインストール
# yum install yum-plugin-replace
3.yum replaceを用いてphpからphp55wに置き換え
追加情報としてこちらの記事もご覧ください。。
# yum replace php-common --replace-with=php55w-common
4.php-opcacheをインストール
# yum install php55w-opcache
5.replace時に退避されたphp.ini.rpmnewをphp.iniにする
# cp /etc/php.ini.rpmnew /etc/php.ini
6.退避された/etc/php-fpm.d/www.conf.rpmnewを/etc/php-fpm.d/www.confにする
【php-fpmを利用されていない方は不要です】
当方nginx+php-fpmで運用しているのですが、この作業を忘れていたせいで「nginxを再起動してもうごかないじゃないか!」となりました。nginxにてBad Gatewayになってしまいあたふたしてしまいました。昼間に行ったので2分程度ブログが表示できなくなっちゃいました(汗) メンテナンス時間を考えろって話ですねww
# cp /etc/php-fpm.d/www.conf.rpmnew /etc/php-fpm.d/www.conf
7.php-fpmを再起動する
【php-fpmを利用されていない方は不要です】
# service php-fpm restart
8.Webサービスの再起動を行う
Apacheの場合
# service httpd restart
nginxの場合
# service nginx restart
最後に動作確認を行います。「php -v」コマンドを実行して以下のような出力が出てくればOKです。
[root@vps1 ~]# php -v PHP 5.5.7 (cli) (built: Dec 13 2013 16:39:00) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies [root@vps1 ~]#
必要な方はphpinfoを設定したファイルをWebサーバー上において、正しく認識しているか確認してください。
以上!
コメント
おはようございます。
さっそくバージョンアップしました。
[root@www ~]# yum replace php-common –replace-with=php55w-common
Loaded plugins: downloadonly, fastestmirror, priorities, replace, security
Loading mirror speeds from cached hostfile
epel/metalink | 5.2 kB 00:00
* base: http://ftp.iij.ad.jp
* epel: http://ftp.iij.ad.jp
* extras: http://ftp.iij.ad.jp
* updates: http://ftp.iij.ad.jp
* webtatic: us-east.repo.webtatic.com
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
mariadb | 1.9 kB 00:00
nginx | 2.9 kB 00:00
updates | 3.4 kB 00:00
82 packages excluded due to repository priority protections
Replacing packages takes time, please be patient…
WARNING: Unable to resolve all providers: [‘config(php-common)’, ‘curl.so()(64bit)’, ‘fileinfo.so()(64bit)’, ‘json.so()(64bit)’, ‘phar.so()(64bit)’, ‘php(language)’, ‘php-core’, ‘php-ereg’, ‘php-filter’, ‘php-phar’, ‘php-standard’, ‘zip.so()(64bit)’, ‘php-common(x86-64)’, ‘php-cli(x86-64)’, ‘config(php)’, ‘php(x86-64)’, ‘config(php-mbstring)’, ‘mbstring.so()(64bit)’, ‘php-mbstring(x86-64)’, ‘config(php-pdo)’, ‘pdo.so()(64bit)’, ‘pdo_sqlite.so()(64bit)’, ‘sqlite3.so()(64bit)’, ‘php-pdo(x86-64)’, ‘config(php-mysql)’, ‘mysql.so()(64bit)’, ‘mysqli.so()(64bit)’, ‘pdo_mysql.so()(64bit)’, ‘php-mysql(x86-64)’, ‘config(php-fpm)’, ‘php-fpm’, ‘php-fpm(x86-64)’]
という警告がでたんで# rpm -qa |grep phpでphpパッケージをしらべて,# rpm -eですべてphpパッケージを削除し#yum -y install php55wで関係するパッケージをインストール
[root@www ~]# php -v
PHP 5.5.7 (cli) (built: Dec 13 2013 15:59:26)
くりくりさん
おはようございます!
言い忘れてました。。その警告は無視していいんです。yで進んでいいんですσ(^_^;)
そいつは単なる警告でphp-*系のパッケージも全部一緒にインストールされ直されるんです。無視していいと書くべきでした。
後ほど修正しておきます!
Dependencyの表示がなければ全部yで進んで問題ないと思います!
パッケージ名が違うから、remiとちがっていいかもしれません。
うちは今wordpressが多いのでphp5.3.3に対応とれなくなったら、ここを考えます。
yum replaceなんてのがあるなんて知らなかったので、自分はすごく勉強になった気がします。
これも、php5.5の魅力を紹介していただいたくりくりさんのおかげです(*´∀`*)
くりくりさん
さっそく記事にしてみましたヽ(・∀・)ノ
[yum] replaceの「Unable to resolve all providers」の意味と対応の巻