CentOS 5.2上でPHP 5.2.6にアップグレード

October 2, 2008 – 2:42 pm

PHP5でウェブアプリケーションやウェブサービスの開発をする際、Zend Framework(ZF)が役に立つ、強く推奨されるとの話を聞いた(Google Web ServiceのYou-tube上のデモだったと思う)。早速、我がサーバにも、これをインストールすることにし、マニュアル(プログラマ向けリファレンスガイド)を読んで見ると、その「1.2 インストール」の冒頭に、

Zend FrameworkはPHP 5.1.4以降でないと動作しません。しかし、Zendとしては5.2.3以降を使うことを強く推奨します。というのも、5.2.3より前のバージョンと比べて安全性やパフォーマンスが劇的に向上しているからです。

と記述されている。これを受けて、我がサーバもPHPバージョンを最新の安定版5.2.6にアップグレードすることにしなければ、と作業をおこなった。

我がシステムの現状: CentOS 5.2がサポートしているPHPのバージョンは5.1.xだ。現在、我がサーバ上のバージョンは5.1.6になっている。PHPの主要な開発主体Zendは5.2.3以降のバージョンの使用を強く推奨している。PHPのオフィシャルなダウンロードサイトを見ると、PHPのUNIX/Linuxバイナリーについては、ソースをコンパイルするか、ディストリビュータのダウンロードサイトから取得しなさい、となっている。

Binaries for other systems
We do not distribute UNIX/Linux binaries. Most Linux distributions 
come with PHP these days, so if you do not want to compile your 
own, go to your distribution's download site
        

そうはいっても、我が能力では、システムの整合性を維持しながらソースからのインストール作業は危険極まりない。Web上で、Installing PHP 5.2.x on RedHat ES5, CentOS 5, etcなる記事を見つけた。ここではLe RPM de Remi で維持・公開されているyum repositoryを用いてアップグレードをしている。我がほうも、これに沿って、アップグレード作業を行った。

アップグレード作業の詳細を以下に記す。作業に先立って、我がサイトのphp関連モジュールを確認しておいた。確認は以下のように行える:

# yum list installed php*
    ( 省 略 )
Installed Packages
php.i386                                 5.1.6-20.el5_2.1       installed      
php-cli.i386                             5.1.6-20.el5_2.1       installed      
php-common.i386                          5.1.6-20.el5_2.1       installed      
php-gd.i386                              5.1.6-20.el5_2.1       installed      
php-mbstring.i386                        5.1.6-20.el5_2.1       installed      
php-mysql.i386                           5.1.6-20.el5_2.1       installed      
php-pdo.i386                             5.1.6-20.el5_2.1       installed      
php-pear.noarch                          1:1.4.9-4.el5.1        installed
        

次に、yum repostioryをセットしなければならない。Le RPM de Remiで示されている3つのコマンドを実行:

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm
# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
        

これにより、/etc/yum.repos.d に remi.repoなるRepository ファイルが作られる。このファイルの中に、以下のようなタグが作られる:

[remi]
name=Les RPM de remi pour Enterprise Linux 5 - $basearch
baseurl=http://rpms.famillecollet.com/el5.$basearch/

http://remi.collet.free.fr/rpms/el5.$basearch/


http://iut-info.univ-reims.fr/remirpms/el5.$basearch/

enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
        

yumによるphp関連モジュールのアップデート: いよいよphp関連モジュールのアップデートを開始する。コマンドとそれに伴う出力のうち主要と思われるものを示すと以下のようになる:

# yum --enablerepo=remi update php*
       ( 省 略 )
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
 php                     i386       5.2.6-1.el5.remi  remi              1.3 M
 php-cli                 i386       5.2.6-1.el5.remi  remi              2.5 M
 php-common              i386       5.2.6-1.el5.remi  remi              233 k
 php-gd                  i386       5.2.6-1.el5.remi  remi              118 k
 php-mbstring            i386       5.2.6-1.el5.remi  remi              1.0 M
 php-mysql               i386       5.2.6-1.el5.remi  remi               82 k
 php-pdo                 i386       5.2.6-1.el5.remi  remi               90 k
 php-pear                noarch     1:1.7.2-2.el5.remi  remi              420 k
Installing for dependencies:
 sqlite2                 i386       2.8.17-2.el5.remi  remi              170 k
 t1lib                   i386       5.1.1-7.el5      epel              194 k

Transaction Summary
=============================================================================
Install      2 Package(s)        
Update       8 Package(s)        
Remove       0 Package(s)        
Total download size: 6.1 M
Is this ok [y/N]: y
Downloading Packages:
   ( 省 略 )
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 00f97f56
Importing GPG key 0x00F97F56 "Remi Collet <RPMS@FamilleCollet.com>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Is this ok [y/N]: y
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 217521f6
Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating  : php-common                   ####################### [ 1/18]
warning: /etc/php.ini created as /etc/php.ini.rpmnew
  Updating  : php-cli                      ####################### [ 2/18]
   ( 省 略 )
Dependency Installed: sqlite2.i386 0:2.8.17-2.el5.remi t1lib.i386 0:5.1.1-7.el5
Updated: php.i386 0:5.2.6-1.el5.remi php-cli.i386 0:5.2.6-1.el5.remi php-common.i386 0:5.2.6-1.el5.remi php-gd.i386 0:5.2.6-1.el5.remi php-mbstring.i386 0:5.2.6-1.el5.remi php-mysql.i386 0:5.2.6-1.el5.remi php-pdo.i386 0:5.2.6-1.el5.remi php-pear.noarch 1:1.7.2-2.el5.remi
Complete!
        

php.iniファイルの設定: 前項のログの中に示されているように、コンフィギュレーションファイルphp.iniが、バージョンの変更に伴い更新されているようだ(php.ini,rpmnewが新しく作られている)。前のバージョンで使用していたphp.iniは、WordPressのイメージファイルのアップロードを効率よく行うためにオリジナルとは異なるものにしている(いきさつはここ)。変更した部分、post_max_size、upload_max_filesizeについて、今回のインストール作業時に作られたコンフィギュレーションファイル上に反映させた。

インストール状況のチェック: インストール作業終了後、phpのバージョンをチェック

# php -v
PHP 5.2.6 (cli) (built: May  7 2008 00:50:43)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
        

無事、バージョンが新しくなっている。我がシステムでphpを使っているアプリケーション、特にWordPressの動作が正常であることを確認して、インストール作業は終了ということにした。

関連ポスト: