CentOSでPHPのバージョンをアップデート
Category
Server
「VPSサーバーでPHPのバージョンをアップデートしたい」と聞かれることがあります。
CentOSでyumを使ってPHPをアップデートすると、デフォルトのリポジトリではPHP5.1.6以上にアップデートすることができません(正確に言うと、5.2系にはアップデートできず、5.3系はパッケージが分かれているので、アップデートというよりはインストールし直す感じになります。追記部分も参考にしてみてください)。
そこで、外部のリポジトリを使用しPHPをアップデートする手順を忘備録として書きます。
以下追記(2012.1.13)
ちなみに、CentOS5.6リリース以降、デフォルトのリポジトリでも"php53"とういパッケージ名でyumを使ってPHP5.3系をインストールすることが可能です。
ですが、デフォルトパッケージを使ってPHP5.3系へアップデートした場合、"php53-mcrypt"や"php53-pear"がないようです("php53-mcrypt"はソースからビルドしてインストール、"php53-pear"はpearコマンドでpearのバージョンをアップデートすることでインストールできるようです)。
Keyword:CentOS,PHPバージョンアップ,Linuxコマンド
CentOSでyumを使ってPHPを5.2系にアップデートする手順
外部のリポジトリでよく聞くのは以下の2つだと思います。
・Les RPM de Remi
・Utter Ramblings
今回は、PHPの5.2系にアップデートする手順を書きます。
※外部リポジトリには、Utter Ramblingsのリポジトリを使用します。
※Utter RamblingsのPHPの最新バージョンは5.2.17です。
※5.3系にアップデートする場合は、Les RPM de Remiのリポジトリを使います。
公式のリポジトリ経由でのアップデートではありませんので、依存関係等の問題が生じる場合があります。当サイトを参考にされる場合、自己責任での対応をお願いします。
また、サーバー環境により、エラー等の出力は異なりますので、コマンドを理解された方が実行してください。
1.現在のPHPのバージョンを確認
php -v
2.現在のPHPのインストールパッケージを確認
yum list installed | grep php*
3-1.RPM GPGキーのインポート
rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
3-2.取り込み済のGPGキーの確認
rpm -qai gpg-pubkey*
4-1.リポジトリを追加
vi /etc/yum.repos.d/utterramblings.repo
4-2.リポジトリに以下を保存(enabled=0で無効化)
[utterramblings] name=Jason's Utter Ramblings Repo baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ enabled=0 gpgcheck=1 gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka priority=0
5.PHPのアップデート
※enablerepoオプションを付け、utteramblingsのリポジトリを使います。
yum --enablerepo=utterramblings update php
6.php-sqlite2の依存関係でエラーが発生するため、php-sqlite2を削除
yum remove php-sqlite2
7.再度PHPのアップデート
yum --enablerepo=utterramblings update php
8.アップデート内容の確認(PHPのバージョン・PHPのインストールパッケージの確認)
php -v yum list installed | grep php*
9.php-mcryptが5.1.6のままなので、明示してupdateを実行
yum update php-mcrypt
10.アパッチの再起動
/etc/rc.d/init.d/httpd restart
11.MySQLを停止・起動
/etc/init.d/mysqld stop /etc/init.d/mysqld start
以上が私が行った際のアップデートの手順です。
依存関係の問題でMySQLも一緒にアップデートされます。”11.MySQLを停止・起動(もしくは再起動)”を行わないと、phpMyAdmin上で「お使いのPHP MySQL ライブラリのバージョン○.○.○がMySQLサーバのバージョン○.○.○と異なります。これは予期しない不具合を起こす可能性があります。」とエラーが出ます(※「MySQLの停止・起動後に新しいバージョンが反映される」と言った方が分かりやすいですね)。
あと、”4-2.リポジトリに以下を保存(enabled=0で無効化)”は、Utter Ramblingsのサイトでは「enabled=1にしてリポジトリを有効化した後、enabled=0に戻し無効化する」とありますが、私の場合は、その都度変更するのが手間なので、常にenabled=0にしておき、Utter Ramblingsのリポジトリを使う場合のみ、”5.PHPのアップデート”でも書いてあるように、enablerepoオプションをつけることでUtter Ramblingsのリポジトリを使えるようにしています。
こうすることで”yum update”を実行する際、デフォルトのリポジトリが使用されます。
要するに、PHPパッケージだけをアップデートする時だけUtter Ramblingsのリポジトリを使うようにします。
※PHP5.3系のアップデート手順に関しては、また別の記事で紹介しようと思います。
※PHP5.3のインストールに関しての記事を掲載しました(2012.4.4追記)
⇒ CentOSにPHP5.3をインストール
関連記事(※当記事と関連性が高いと思われる記事)
CentOSでPHPのバージョンをアップデート
2011/12/23CentOSにPHP5.3をインストール
2012/04/04APCでPHPの処理を高速化
2012/06/12PHP5.3のPEARをアップデート
2012/06/09RSSフィードを読み込むPHPスクリプト
2012/04/21おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)