PHPのRPMの生成

これも手順はApache2とほぼ一緒。
ただ、「php-4.4.1.tar.gz」を展開したフォルダの直下には「makerpm」というファイルがあり、名前のとおりRPMを作ってくれるスクリプトが書かれている。
同じフォルダに「php4.spec.in」というものもあり、当初こっちをいじっていたのだが、「makerpm」は自分の中に書かれているspecファイル(sedで出力してる)を使うらしい。
なので今回はspecファイルを改竄する代わりに直接「makerpm」を改竄する。

まず、Apache2と同じように「Serial」は削除。
次に、configure(2つあるけど2番目の方)の引数として以下を追加。

--with-apxs2=/usr/sbin/apxs
--enable-mbstring
--enable-mbregx
--enable-zend-multibyte

ただし、一番上の行は「--with-apxs」を「--with-apxs2」に変更したものである。
で、最後の方にあった以下の行を、

RPMDIR=/usr/src/redhat/RPMS
SPECDIR=/usr/src/redhat/SPECS
SRCDIR=/usr/src/redhat/SOURCES

以下のように変更。

RPMDIR=$HOME/rpm/RPMS
SPECDIR=$HOME/rpm/SPECS
SRCDIR=$HOME/rpm/SOURCES

これは、今回一般ユーザでRPMの生成作業を行なっているため(別途~/.rpmmacrosが存在)。rootでやって失敗するとひどいことになるので。
あと、昔は「rpm」でRPMの生成も担当していたらしいがFC4は「rpmbuild」を使うため、一番最後の行にあるコマンドを「rpmbuild」に変える必要がある。
補足(2005/11/30):そういや、他にも「./buildconf」に「--force」を付けて「%doc」から「ChangeLog」を削除した。

上記の改竄が完了したら、展開したままのフォルダ(「makerpm」が存在するフォルダ)内で「makerpm」を実行すると、RPMをガシガシ作ってくれる(今回は一般ユーザで実行)。

で、めでたく完成したら以下のコマンドでインストールと確認を行なう。

root#rpm -Uvh ./mod_php4-4.4.1-1.i386.rpm
root#rpm -q mod_php4

specファイルに「mod_php4」と書いてあったのをそのまま使っているので名称が「mod_php4」になっているが、実際には単体のphpもインストールされている。

補足(2005/11/30):PHP4.4.1はマルチバイトのメールにバグがあるんだってさ。4.4.2はまだ正式リリースじゃないし。どうすりゃいいのよ。ひとまずこのままにしておいて、4.4.2が出たらアップデートするか。(参考:PHP-users ML