[PHP] --enable-versioningを止めるの巻
PHP-5.2.0にPECLのmemcacheモジュールを入れたところ、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。