somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【php】zlibのインストール

phpizeを使用してzlibをインストールした時のメモです。

phpize~make install

お決まりの流れなので軽く説明します。

cd /phpのソースディレクトリ/ext/zlib
phpize
./confiugre --with-zlib
make
make test
make install

いきなりですが、phpizeで詰まりました。

Cannot find config.m4. 
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module

config.m4.がないため怒られました。その代りに、config0.m4という似た名前のファイルが存在するので、リネームして対応しました(シンボリックリンクの方がよかったかもしれません)。

あとは流れ通りです。最後にphpのextension_dirにzlib.soが作成されるので、php.iniを修正して完了です。

config.m4

以下、引用です。モジュール同士の関連によるためファイル名が異なるみたいです。

(1) 何故 config.m4 ではなくて config0.m4 なのか?(このため,phpizeが失敗する)

config0.m4という名前になっているのは、zlibのconfigureの結果に依存してい
る拡張モジュールがある(domxmlやgdが多分そうです)ためです。このため、
configure実行時にzlib関連のチェックを全ての拡張モジュールに先立って行う
必要があり、他のモジュールとは異なる名前となっています。

詳細はscripts/config-stubsとかを参照していただければ。というか

for stubfile in $dir/*/config0.m4 $dir/*/config.m4; do
    echo "sinclude($stubfile)"
done

aclocal

phpizeのあとに、このコマンドを実行しているサイトが多かったので調べてみました。aclocalはautomakeパッケージの一部だそうです。automakeって?よくわからないですが、automakeは、前にインストールしたautoconfと関係があるっぽいです。なので、aclocalとautomakeがなくてもautoconfだけで済んでいるのではないでしょうか。ちなみにインストール後のzlibソースディレクトリにはaclocal.m4が作成されていました。

参考