mb_func_overloadと.htaccess問題だった

wordpress 2.5x/2.6xとphp5.2.x(とx86_64?)の挙動不振」の続報。

みなさん、あれこれあれこれと対策を挙げてらしたのですが、残念なことにワタシの環境ではうまいこと解決しませんでした。

…が、ついに解決! 解決方法はこちら。

「同一サイト内の、すべての.htaccessにおいてmbstring.func_overloadの設定をしない(より正確に言えば、php.iniを含むすべての個所でmbstringがらみの設定をしない)」

御存じの通り、.htaccessはディレクトリごとにapacheの設定を制御できるので、ちょっと入り組んだ構造のwebサイトを構築している場合は欠かせない存在なのですが、なぜかmbstringがらみの設定に限っては、「漏れ」てしまうんですね。で、他のところでエラーを引き起こし、結果的にサイト全体にめちゃめちゃ負荷がかかる、と。

func_overloadはあんまり好きではないので、普段は使っておらず、この指摘に気づいた時もしばらくは、「えーそんな設定してないしー」とサイト全体を確認していなかったのですが、よーく考えたら、egroupwareが.htaccessにこの設定を書いていた、ということを思い出し、コメントアウト。再起動。apacheが……重くならない! MaxRequestsPerChildを通常値に戻しても大丈夫。やったー! ここ数か月悩みつづけていた問題がついに決着!

というわけで、もし同様のお悩みを抱えている方はぜひおためしを。いやー長かった。multibyte系の話題のせいもあって、あんまり情報がないんで苦労したんですよねー。(しかし2004年からのバグなのか。。それに、cvs版でフィクス、って言われてもなあ。。)

ところで。

Bug #27421 mbstring.func_overload set in .htaccess becomes global

決め手となったのはこの記事なんですが。。。
アレ? 上述の記事内の引用記事からすでにリンクされていた?(汗)……まあ……いいか!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です