- 日本PHPユーザ会
http://www.php.gr.jp/ - ITmediaニュース:PHPに複数の深刻な脆弱性、最新版へのアップグレードを
http://www.itmedia.co.jp/news/articles/0412/17/news007.html - セキュリティホール memo
http://www.st.ryukoku.ac.jp/%7Ekjm/security/memo/2004/12.html#20041218_PHP
「PHP 4.3.9 以前 / 5.0.2 以前に複数の重大な欠陥。」 とのこと。
実はPHP 4.3.8 のまま放置していたので、これを気に入れ替え。ついでに、RPM の作り方をメモ。
まず、ダウンロードページ から”php-4.3.10.tar.gz” (4,892,209 bytes, md5: 73f5d1f42e34efa534a09c6091b5a21e) をダウンロード、”/usr/src/redhat/SOURCES” へ。
マニュアルのパッケージも作っておきたい人は各言語版のマニュアル もダウンロードして同じく”/usr/src/redhat/SOURCES” へ。
さらに、php.conf をどこからから探してきてこれも”/usr/src/redhat/SOURCES” へ。ウチではとりあえずつじつまを合わせるために”/etc/httpd/conf.d/php.conf” を再利用。
先ほどダウンロードしてきた”php-4.3.10.tar.gz” の中の”php4.spec” は実行しても「SRPM を作って終了」 となってしまうので、RHL9 用のPHP のSRPM の中から”php.spec” だけを抜き出して適当に作り変えてみました。全部貼り付けると異常に長くなるので、変更したポイントだけを短く紹介。基本的にはPatch 関係を全部コメントアウト、マニュアルも日本語のみ、としています。
%define contentdir /var/www
%define manual_langs ja
Name: php
Version: 4.3.10
Release: 1
Source0: %{name}-%{version}.tar.gz
Source1: php_manual_ja.tar.gz
Source2: php.conf
コンパイルオプションには以下のものを追加。あとはお好みで。
--enable-roxen-zts \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-zend-multibyte \
--enable-track-vars \
--with-zlib \
そしていつもの呪文。
# rpmbuild -bp --target i686 /usr/src/redhat/SPECS/php.spec # パッチをあてる
# rpmbuild -bc --target i686 /usr/src/redhat/SPECS/php.spec # コンパイルを行う
# rpmbuild -bi --target i686 /usr/src/redhat/SPECS/php.spec # インストールテスト
# rpmbuild -ba --target i686 /usr/src/redhat/SPECS/php.spec # パッケージを作成する
出来上がったらパッケージのアップグレード、httpd の再起動。
# rpm -Uvh /usr/src/redhat/RPMS/i686/php-4.3.10-1.i686.rpm
# rpm -qa |grep php
php-4.3.10-1
# /etc/rc.d/init.d/httpd restart
“php.ini.rpmnew” が出来たので”/etc/php.ini” と比較してみましたが、特に変更点がなかったので、そのまま。
あと、「Apache 2.0.52 に入れ替えついでにいくつか変更」 で書いたように、”X-Powered-By:” というフィールドでPHP のバージョンが丸見えになってしまう対策で”/etc/php.ini” の中のexpose_php = On” を”expose_php = Off” に変更。
PHP 4.3.8 もRPM を作って入れていたのですが、作業手順のメモを書き忘れていたので少し手間取りました。ちゃんと書こう。>じぶん
コメント
はじめまして。
自分も現在PHP4.3.10のRPMを作成しているのですが、うまくいきません。
正確にはRPMは作成できたのですが、何故か
php-debuginfo-4.3.10-1.i386.rpm
と言うRPMになってしまいます。
すいませんがSPECファイルを教えてもらえないでしょうか?
> うっちん さま
php のtarball に入っているSPEC ファイルではちゃんとしたRPM は作ってくれないみたいですので、別途、用意する必要があります(もしくは、がんばって自分で書くか)。
ウチの場合はRHL9 用php のSRPM からSPEC ファイルを抜き出して使いました。
http://www.jp.redhat.com/support/errata/RHSA/RHSA-2003-204J.html#Red%20Hat%20Linux%209
上のリンクからSRPM が落とせますので、あとは
$ mkdir phptemp
$ cd phptemp
$ ../rpm2cpio php-4.2.2-17.2.src.rpm | cpio -id
とかやるとSPEC ファイルが手に入るはずですのでお試しください。そのままでは使えないかもしれませんが、このページの記事を参照してみてください。
マニュアルとかも要る場合はSRPM をそのままインストールしちゃってもいいかもですね。