PHPにPATHを通すとPidginがクラッシュする

Windowsで、最近のPHPにPATHを通すと、Pidginがクラッシュします。どうやら、php.exeと同じフォルダに置かれるようになった、aspell-15.dllが競合している模様。

PidginはスペルチェックにAspellを使っていて、それはPidginとは異なるフォルダにインストールされる。でも、遠慮深いPidginは、もしかしたらAspellだけアンインストール&別の場所にインストールされるかもしれないからと、まずAspellのDLLを探してみて、だめな場合だけ、自分のインストールした別フォルダのAspellを使おう、とするんだと思う。

そんなPidginの動作に、PHPが持っている同名なDLLがヒットしてしまうと、それを食ってハト即死。

ちょっと前まで、PHPでスペルチェックするときは、Aspellを別途インストールしないといけなかったんだけど、いつの間にWindowsバイナリのセットに含むようになったんだろう? とにかく、これまでなくても困らなかったので、PHPのaspell-15.dllは削除しとこう。

# 正直、これがわかるまで2日悩んだ

PATHを通したいexeがあるディレクトリと同じパスにDLLぶちまけると、こんな、予想外の同名DLLロード問題を発生させるんですね。そういえば、WindowsのRapidSVNが、パスを通したsvn.exeの置いてある場所からiconvのリソースを引っ張ってきてクラッシュする問題に対処したことがあったっけ…。