zabbix-1.8.3 グラフの日本語処理について

本フォーラムの「[url=http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=thread&topic_id=497&forum=5&post_id=2728#forumpost2728]Zabbix1.8.2 グラフの日本語の文字化けについて[/url]」に関連して、今回の zabbix-1.8.3 でも同様な問題が発生しますが、特に、--enable-gd-jis-conv という config が設定された PHP サーバをお使いの場合は、前回と同様な修正がもう1箇所必要となることが分かりました。

これは本来 UTF-8 で文字列を扱う imagettftext() 関数が GD を SJIS で処理する上記ディレクティブのために、一旦 UTF-8 ⇒ SJIS 変換をしないと文字化けするというものです。今回の zabbix-1.8.3 ではもう1箇所 imagettfbbox() という関数が使用されており、これにも同様の措置が必要となりました。今回の関数は文字化けではなく、指定の文字コードが存在しないというPHPエラーとなり、処理がアボートしてしまいます。対策は以下の通りです。

include/graphs.inc.php の ?1234行と ?1152行 に、前回と同様、以下の3行を追加修正します。
if($gdinfo['JIS-mapped Japanese Font Support']){
 $string = mb_convert_encoding($string, 'SJIS', 'UTF-8');
}

この修正は GD SJIS 化の処理が設定されていない通常のPHPサーバにに実施しても問題なく動作するので、適用範囲は広いと思います。