Server

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

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をインストール

List

関連記事(※当記事と関連性が高いと思われる記事)

CentOSでPHPのバージョンをアップデート

2011/12/23
CentOS
スコア:59 ※スコアの数値が大きいほど、関連性の高い記事です。 CentOSでyumを使ってPHPを5.2系にアップデートする手順 外部のリポジトリでよく聞くのは以下の2つだと思います。 ・Les RPM de Remi ・Utte... 続きを読む...

CentOSにPHP5.3をインストール

2012/04/04
CentOSにPHP5.3をインストール
スコア:48 ※スコアの数値が大きいほど、関連性の高い記事です。 以下を前提にインストールするものとします。 CentOS5系でのインストール手順 PHP5.3とMySQLをインストール 基本、デフォルトのリポジトリ経由でインストール... 続きを読む...

APCでPHPの処理を高速化

2012/06/12
APCでPHPの処理を高速化
スコア:17 ※スコアの数値が大きいほど、関連性の高い記事です。 PHPアクセレーターAPCとは? PHPアクセレーターとは、PHPのスクリプトを最適化してコンパイルされた状態でデータをキャッシュし、以後同じデータにアクセスがあった際... 続きを読む...

PHP5.3のPEARをアップデート

2012/06/09
PHP5.3のPEARをアップデート
スコア:17 ※スコアの数値が大きいほど、関連性の高い記事です。 PHP5.3のPEARアップデート手順 1.PEARのインストールパッケージを確認現在インストールされているPEARのパッケージを確認します。 コマンド # PEARの... 続きを読む...

RSSフィードを読み込むPHPスクリプト

2012/04/21
RSSフィードを読み込むPHPスクリプト
スコア:16 ※スコアの数値が大きいほど、関連性の高い記事です。 以下の内容で紹介していきます。※テキストリンクをクリックするとその箇所までページがスクロールします。 Magpie RSSのダウンロードと設置 Magpie RSSを使... 続きを読む...

おすすめ書籍・商品(※当記事と関連性が高いと思われる書籍・商品)

ページの先頭へ