CentOS 5.2上でPHP 5.2.6にアップグレード
October 2, 2008 – 2:42 pmPHP5でウェブアプリケーションやウェブサービスの開発をする際、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の動作が正常であることを確認して、インストール作業は終了ということにした。
4 Trackback(s)