tkuchikiの日記

新ブログ https://blog.tkuchiki.net

php-build が libphp5.so を上書きしないようにするパッチ

CHH/php-build · GitHub は、php を指定のディレクトリに build できるので便利だが、
--with-apxs2 をつけて build すると、httpd の modules ディレクトリ以下 (/etc/httpd/modules など) の libphp5.so を上書きしてしまう。
この場合、システム全体で使っている php と、個別にインストールした php共存させられないので不便だ。
ので、パッチを書いた。

以下のように、patch コマンドで適用できる(できない場合は、一行しか追加していないので、コピペで)。

patch -u /path/to/php-build < php-build.patch

パッチの説明

Makefile が以下のとおりになっていて、

INSTALL_IT = $(mkinstalldirs) '$(INSTALL_ROOT)/usr/lib64/httpd/modules' && $(mkinstalldirs) '$(INSTALL_ROOT)/etc/httpd/conf' && /usr/sbin/apxs -S LIBEXECDIR=$(INSTALL_ROOT)/usr/lib64/httpd/modules -S SYSCONFDIR='$(INSTALL_ROOT)/etc/httpd/conf' -i -a -n php5 libphp5.la

以下の記述で、生成先を指定している。

/usr/sbin/apxs -S LIBEXECDIR=$(INSTALL_ROOT)/usr/lib64/httpd/modules

なので、LIBEXECDIR を make する前に書き換えるようにした。
ちなみに、LIBEXECDIRの指定は、configure ファイルの

APXS_LIBEXECDIR=`$APXS -q LIBEXECDIR`

で行っているようなので、こちらを書き換えてもできるかもしれない(未検証)。

libphp5.so を別の場所に生成できるようになったのに満足して、httpdphp が動くか検証していないので、動かなかったら申し訳ございません...