読者です 読者をやめる 読者になる 読者になる

[PHP] --enable-versioningを止めるの巻

PHP-5.2.0にPECLmemcacheモジュールを入れたところ、CLIではちゃんと認識されるのに、DSOでは

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so' - /usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so: undefined symbol: executor_globals in Unknown on line 0

というメッセージを吐いて認識してくれない。いろいろ調べたところ、どうもこのexecutor_globals 問題は extension をロードする際に度々トラブルになっているらしく、いくつかのpeclのバグトラックに載っては「それはバグじゃありません」というやり取りがされている。

とはいえ手元でも動かないのは困るのでさらに調べると、えらい昔のバグトラックにヒントがあった。

[8 Aug 2002 4:06pm UTC] hholzgra@php.net
what is your conplete configure line?
did you use --enable-versioning?

なるほど。--enable-versioningくゎ。もうphp3と共存させることなんてあり得ないのに、まるで盲腸を大事にするかのように、確かにずっと指定し続けていたですわ。

ということでmake distcleanして--enable-versioningを外してconfigure、make; make installしたところ、すかっと解決しましたことよ。さようなら--enable-versioning。