CentOS 5.7 に PHP 5.3 をインストールする

SPECIAL


PHP 5.3 のインストール

PHP のパッケージをインストールしていたところ、"php53-common" パッケージの依存関係まわりでエラーとなってしまいました。

この "php53" から始まるパッケージというのは php 5.3 系のものだそうです。

これまでは php 5.2.10 を使っていて、パッケージ名も "php-" のものだったのですけど、混在してしまって良いかどうかわからなかったので、これを機に php 5.3 へアップデートしてみることにしました。

インストール済みのパッケージを確認する

php 5.2.10 がインストールされている CentOS 5.7 に php 5.3 をインストールするには、あらかじめ php 5.2.10 を削除する必要があるようです。

そこで、まずはインストール済みの php パッケージを次のようにして確認しておきます。

yum list installed | grep php

こうしたところ、自分の環境では次のパッケージがインストールされていました。

  • php.x86_64 5.2.10-1.el5.centos installed
  • php-cli.x86_64 5.2.10-1.el5.centos installed
  • php-common.x86_64 5.2.10-1.el5.centos installed
  • php-mbstring.x86_64 5.2.10-1.el5.centos installed
  • php-mcrypt.x86_64 5.2.9-2.el5.centos.3 installed
  • php-mysql.x86_64 5.2.10-1.el5.centos installed
  • php-pdo.x86_64 5.2.10-1.el5.centos installed
  • php-pear.noarch 1:1.8.1-2.el5.centos installed
  • php-xml.x86_64 5.2.10-1.el5.centos installed
  • phpmyadmin.noarch 2.11.11.3-2.el5.rf installed

ここの "phpmyadmin" は気にしないでおくとして、これらのパッケージをまずは削除することになります。

 

それと、pear も使っている場合は、次のようにして pear パッケージについても確認しておきます。

pear list

こうすると、自分の環境では次のパッケージがインストールされているのを確認できました。

  • Archive_Tar 1.3.8 stable
  • Auth_SASL 1.0.6 stable
  • Cache 1.5.6 stable
  • Cache_Lite 1.7.12 stable
  • Console_Getargs 1.3.5 stable
  • Console_Getopt 1.3.1 stable
  • DB 1.7.14 stable
  • HTTP_OAuth 0.2.3 alpha
  • HTTP_Request 1.4.4 stable
  • HTTP_Request2 2.0.0 stable
  • Log 1.12.7 stable
  • Mail 1.2.0 stable
  • Net_SMTP 1.6.1 stable
  • Net_Socket 1.0.10 stable
  • Net_URL 1.0.15 stable
  • Net_URL2 2.0.0 stable
  • PEAR 1.9.4 stable
  • PEAR_Info 1.9.2 stable
  • Services_Amazon 0.9.0 beta
  • Services_Twitter 0.6.3 beta
  • Structures_Graph 1.0.4 stable
  • XML_Parser 1.3.4 stable
  • XML_RPC 1.5.5 stable
  • XML_Serializer 0.20.2 beta
  • XML_Util 1.2.1 stable

このような感じで、現状のインストール済みライブラリを確認できたので、続いて既存の php 5.2 系の削除と、新しい 5.3 のインストールを行います。

php 5.2 のアンインストール

既存の php 5.2 系のアンインストールは、次のようにすることで行えます。

service httpd stop

yum remove php php-*

このとき、削除されるパッケージの一覧が表示されるので、関係のないパッケージまで削除されないかどうかを確認します。

 

自分の場合は、ここで Nagios と phpmyadmin もこれらのパッケージに依存しているとして削除する運びになりました。

ここで注意したいのは、平成 24 年 2 月 22 日現在、この phpmyadmin と Nagios は、php 5.3 系をインストールした後で yum でインストールしようとすると php 5.2 系のライブラリが php 5.3 系のライブラリと競合するとして、受け付けてくれないところでしょうか。

これらも引き続き使用したい場合には、セットアップの苦労も増えてくると思われます。

php 5.3 のインストール

php 5.2 系のアンインストールが出来たら、続いて php 5.3 系のインストールを行います。

yum install php53 php53-devel php53-common php53-mbstring php53-mysql

これで基本的な php 5.3 系のパッケージのインストールができました。

このようにすることで、php53-cli と php53-pdo も依存パッケージとして追加され、php 5.3.3 のインストールが完了しました。

 

php の設定ファイル "/etc/php.ini" も新しくインストールされるので、必要に応じて設定を調整する必要があるかもしれません。

また、date 系の関数や time 系の関数を使っている場合は "date.timezone" の設定をしておいた方がいいという情報があったため、今回は "date.timezone = Asia/Tokyo" と設定しておくことにしました。

pear のインストール

今回は、以前の php 5.2.10 で pear を利用していたので、新しい php 5.3.3 でも pear を利用できるようにしてみます。

これをしないと pear でインストールしたパッケージを使おうとしたときに、次のようなエラーが apache のログに表示されてしまいます。

PHP Fatal error: require_once(): Failed opening required 'PEAR.php' (include_path='.:/usr/share/pear:/usr/share/php')

pear は  php 5.2.10 を削除する段階で一緒にアンインストールしてあるので、次のようにして再びインストールを行います。

yum install php-pear

インストールするパッケージは、php 5.3 の場合でも php-pear で良いようです。何故ここは php53-pear とならないのか、非常に不思議でなりません。

ともあれ、このようにして pear をインストールした後で "pear list" を実行すると、これまで使用していた pear パッケージがインストールされていることを確認できるのですけど、それより前の画面で多数の警告メッセージが表示されました。

 

これを解消するためには、コマンドラインから次のコマンドを実行します。

pear upgrade --force pear

このようにすると、多数のエラーメッセージが表示されながら、pear ライブラリのアップデートが行われます。

これで "pear list" を実行した時に、多数の警告メッセージが表示されなくなりました。

その他のパッケージのインストールは…

今回は流れの中で、php 5.2 系に依存していた Nagios と phpmyadmin のアンインストールも行われてしまいました。

そこでこれらの再インストールも行っておきたかったのですけど、どちらとも単純に yum を使ってインストールをしようとすると、php 5.2 系に依存していることを指摘されてしまって、インストールすることができませんでした。

今回はとりあえずインストールしないでおくことにして、これらのインストール方法についてはまた必要になった時にでも、調べてみたいと思います。