2009年12月11日金曜日

Zabbix 1.8のWebインターフェースの動作に要求されるmbstring関数の問題

Zabbix 1.8がリリースされてインストールを試してみたというブログ記事をいくつか見かけたり、知人からメールをもらったりしているのですが、よくCentOS 5系でインストールをするとWebインターフェースのインストーラでPHPのmbstring supportのチェックでつまづいて先に進むことができないと報告を受けます。




このチェックはWebインターフェースのディレクトリのinclude/locales.inc.phpのmbstrings_available()関数でチェックされています。CentOS 5に付属しているPHP 5.1ではmb_stristrとmb_strstr関数が含まれないためにエラーになってしまっています。

39 function mbstrings_available(){
40         $mbstrings_fnc_exist =
41                 function_exists('mb_strlen') &&
42                 function_exists('mb_strtoupper') &&
43                 function_exists('mb_strpos') &&
44                 function_exists('mb_substr') &&
45                 function_exists('mb_stristr') &&
46                 function_exists('mb_strstr');
47 
48 return $mbstrings_fnc_exist;

ですが、これらの関数をgrepで探してみてもどこにも見当たりません。実際は使われていない関数なので、上記のチェックのうち該当する関数のチェックは外してしまっても問題ありません。

ZABBIX SIAのフォーラムでも同様のことが投稿されていたので、これはバグですね。おそらく次のバージョンで改善されるでしょう。


2009/12/11 追記:

後で気付いたのですが、Zabbix 1.8ではmbstring.func_overloadを2に設定する必要があるため、strstr関数がmb_strstr関数に自動的に上書きされて利用されることになります。

調べてみたところstristr関数はOracleデータベースを利用している場合のみ使われていて、strstr関数は利用されていませんでした。

ZABBIX SIAがどのように対応するか分からないですが、詳細が分かったら続編書きます。

0 件のコメント: