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のバージョンを確認
1 | php - v |
2.現在のPHPのインストールパッケージを確認
1 | yum list installed | grep php* |
3-1.RPM GPGキーのインポート
1 | rpm -- import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka |
3-2.取り込み済のGPGキーの確認
1 | rpm -qai gpg-pubkey* |
4-1.リポジトリを追加
1 | vi /etc/yum.repos.d/utterramblings.repo |
4-2.リポジトリに以下を保存(enabled=0で無効化)
1 | [utterramblings] |
2 | name=Jason's Utter Ramblings Repo |
3 | baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ |
4 | enabled=0 |
5 | gpgcheck=1 |
6 | gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka |
7 | priority=0 |
5.PHPのアップデート
※enablerepoオプションを付け、utteramblingsのリポジトリを使います。
1 | yum --enablerepo=utterramblings update php |
6.php-sqlite2の依存関係でエラーが発生するため、php-sqlite2を削除
1 | yum remove php-sqlite2 |
7.再度PHPのアップデート
1 | yum --enablerepo=utterramblings update php |
8.アップデート内容の確認(PHPのバージョン・PHPのインストールパッケージの確認)
1 | php - v |
2 | yum list installed | grep php* |
9.php-mcryptが5.1.6のままなので、明示してupdateを実行
1 | yum update php-mcrypt |
10.アパッチの再起動
1 | /etc/rc.d/init.d/httpd restart |
11.MySQLを停止・起動
1 | /etc/init.d/mysqld stop |
2 | /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/23
CentOSにPHP5.3をインストール
2012/04/04
APCでPHPの処理を高速化
2012/06/12
PHP5.3のPEARをアップデート
2012/06/09
RSSフィードを読み込むPHPスクリプト
2012/04/21
おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)