Apache の mpm_worker / mpm_event 上で mod_php を利用すると Web フロントエンドの翻訳周りが誤動作する

不具合報告、というか要望です

下記環境にて、組み合わせ試験してみました
CentOS6 x86_64
Apache 2.4.4 mpm_worker / mpm_event / mpm_prefork
PHP 5.4.17 mod_php / php-cgi
mod_fcgid 2.3.7
zabbix 2.0.6

mod_php 側は、コンパイルオプション「--enable-maintainer-zts」をつけてコンパイルしており、
PHP 自体はマルチスレッドに対応している状態にしてあります

Apache 側を、mpm_prefork などプロセスレベルのマルチプロセス動作の設定にした場合には
mod_php を利用しても、mod_fcgid + php-cgi を利用しても、問題なく動作します
また、Apache 側を、mpm_worker や mpm_event など、マルチスレッド動作の設定にした状況下で
mod_fcgid を利用して cgi 版の php を利用した場合も、問題ありません

ところが、Apache 側を mpm_worker / mpm_event の設定にした状況下で、
mod_php を利用した場合、フロントエンドのトップページ、ダッシュボード上など、
様々な翻訳が掛かる部分にて、ところどころ英語表記になることがあります
リロードするたびに状況は変わり、うまく翻訳される場合もあります

原因を調査したところ、frontend 内の一部ソースファイル「include/config.inc.php」内で
putenv 関数を用いた環境変数の指定と、setlocale 関数を用いたロケール設定が行われており、
アクセスユーザの言語ロケール指定にあわせた初期化処理を、リクエスト毎に処理している部分に
原因があるようです

putenv / setlocale での指定は、プロセスレベルでの設定値となってしまうため、
マルチスレッド環境下では、他のスレッドに影響を与えてしまっているようです

既にかなり開発が進んでいる 2.2 に対する要望ともなりますが、
できることならば、mod_php を利用した環境下でも mpm_event 等のスレッド型の httpd 処理が
利用できるようになってくれればと思います

#本内容を本家の バグ・要望管理システム「https://support.zabbix.com/」に対して
#要望として挙げようと思ったのですが、英語力に自信がなく、こちらへ書かせていただきました

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー fripper の写真

追伸:
素直に nginx などへ移行したほうが‥という説ももちろんあるのですが、
既存アーキテクチャからの移行が難しい部分もありまして‥といった次第です。
ワガママ申し上げて申し訳ないです