2013年12月17日火曜日

CentOS 5.8 php53からphp5.4へのアップデート

CentOS 5.8にインストールされていたphp53を、php5.4にアップデートしました。

タイトルの通りですが、作業を行った時のメモです。
作業自体はx86_64で行っていますが、他でも同じだと思います。
php53のパッケージを一旦削除してから、remiのリポジトリにあるphp5.4を取得・インストールしています。
なので、正確には再インストールですね!


php53の削除

早速、php53のパッケージを削除します。

[root@centos5.8 ~]# yum remove php53*
Loaded plugins: downloadonly, fastestmirror, security
Setting up Remove Process
Resolving Dependencies

~中略~

Transaction Test Succeeded
Running Transaction
  Erasing        : php53-common                                                                                               1/**
警告: /etc/php.ini は /etc/php.ini.rpmsave として保存されました。
  Erasing        : php53-bcmath                                                                                               2/**
  Erasing        : php53-cli                                                                                                  3/**
  (削除された項目を省略しています)


Removed:
  php53.x86_64 0:5.3.3-21.el5               php53-bcmath.x86_64 0:5.3.3-21.el5          php53-cli.x86_64 0:5.3.3-21.el5
  php53-common.x86_64 0:5.3.3-21.el5        (削除された項目を省略しています)

Dependency Removed:
  php-pear.noarch 1:1.4.9-8.el5

Complete!

php5.4のインストール

php53パッケージの削除が完了したら、いよいよphp5.4のインストールです。
わたしの環境では、ここで依存関係エラー(libedit)が発生しました。
epelのリポジトリから取得してインストールすることで解決です。

[root@centos5.8 ~]# yum install --enablerepo=remi php
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libcurl.x86_64 0:7.21.7-5.el5.remi.2         libssh2.x86_64 0:1.2.7-1.el5.remi        php-cli.x86_64 0:5.4.22-1.el5.remi
  php-common.x86_64 0:5.4.22-1.el5.remi

Complete!

必要に応じてphp-mcryptphp-devel、削除されたモジュール類を入れてあげて下さい。

[root@centos5.8 ~]# yum install --enablerepo=remi php-mcrypt
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-mcrypt.x86_64 0:5.4.22-1.el5.remi

Dependency Installed:
  libtool-ltdl.x86_64 0:1.5.22-7.el5_4

Complete!

[root@centos5.8 ~]# yum install --enablerepo=remi php-devel
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile

~中略~

Installed:
  php-pear.noarch 1:1.9.4-23.el5.remi

Dependency Installed:
  php-process.x86_64 0:5.4.22-1.el5.remi                             php-xml.x86_64 0:5.4.22-1.el5.remi

Complete!

これらの他にもphp5.4化でphp-pearも入れ直しました。(・ω・´)
/etc/php.ini.rpmsave(php53削除時に作成された設定ファイルのバックアップ)からの再設定も、必要であれば行って下さい。


php5.4のインストールが完了したら、Apacheを再起動して完了です。

[root@centos5.8 ~]# /etc/init.d/httpd start
httpd を起動中:                                            [  OK  ]

さてと……。
動かなくなったPHPファイルはどれくらいあるのでしょうか(・_・;)

php5.4の更新内容についてはこちらをご覧下さい。
下位互換の無い変更点も結構あるので、PGの皆さん!ご注意下さい。




php5.4インストール時にエラーになった場合

php5.4をインストールする際に、わたしの環境では依存関係エラーが発生しました。

php-cli-5.4.23-1.el5.remi.x86_64 from remi has depsolving problems
  --> Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
Error: Missing Dependency: libedit.so.0()(64bit) is needed by package php-cli-5.4.23-1.el5.remi.x86_64 (remi)
 You could try using --skip-broken to work around the problem
 You could try running: package-cleanup --problems
                        package-cleanup --dupes
                        rpm -Va --nofiles --nodigest

libeditが無いとのことだったので、epelリポジトリから取得してインストールすることで対処しました。

[root@centos5.8 ~]# yum install --enablerepo=epel libedit
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
~中略~
Running Transaction
  Installing     : libedit                                                                                                     1/1

Installed:
  libedit.x86_64 0:2.11-2.20080712cvs.el5

Complete!