mbstringの設定というのはこれのことでしょうか?
[mbstring]
; language for internal character representation.
;mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP
; http input encoding.
;mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = Off
; automatic encoding detection order.
; auto means
;mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
;mbstring.substitute_character = none;
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
; enable strict encoding detection.
;mbstring.strict_encoding = Off
kodai - 投稿数: 1341
利用されているバージョンはいくつでしょうか。
pepepe - 投稿数: 24
1.4.2です。
よろしくお願いします。
kodai - 投稿数: 1341
今のところZABBIXはマルチバイトを想定した作りになっていないため、基本的に日本語の対応は難しい状況です。仮に一部の設定で日本語が通ったとしても、他の部分で適切に処理されるとは限らないことをご理解ください。
上記の点をご理解頂いた上での回答になりますが、おそらく、Webフロントエンドは日本語(UTF-8)で利用されていると思います。表示されるエラーはWebフロントエンドの入力チェック処理が日本語に対応していないため表示されるものです。以下の方法でWebフロンとエンドから設定を保存することが可能になります。
<ul><li><a href="http://www.zabbix.jp/files/patch/1.4.2/triggers.inc.php.patch">こちら</a>からtriggers.ini.php.patchをダウンロードし、Webフロントエンドを稼働させているサーバに保存する</li><li>コンソールからWebフロントエンドが保存されているディレクトリのincludeディレクトリに移動する</li><li>以下のコマンドを実行する(/path/toはtriggers.inc.php.patchが保存されているパス)</li>
<code># patch < /path/to/triggers.inc.php.patch</code>
元に戻す場合はincludeディレクトリの下にあるtriggers.inc.php.origをtriggers.inc.phpに上書きしてください。
ただし、Windowsのテスト環境をすぐに用意することができなかったので、実際に収集した文字列と設定値が正常に比較されるかどうかまでは試せていません。上記のパッチでWebフロントエンドから登録は行えても、ZABBIXサーバで正しく日本語の文字列が比較されるかどうかは確認できていません。
pepepe - 投稿数: 24
パッチをIEにてEUCで保存した後、サーバーにアップロードして
上記コマンドを実行したのですが、
patch unexpectedly ends in middle of line
patch: **** Only garbage was found in the patch input.
と怒られてしまいます。
どうすればよいか教えて頂けませんでしょうか?
kodai - 投稿数: 1341
IEで開いてから内容をコピーすると改行コードが変わってしまうため正常に動作しません。
リンクを右クリックして「対象をファイルに保存」するか、Linuxから wgetなどを使ってダウンロードしてみてください。
pepepe - 投稿数: 24
何度もすみません。
patchは無事に当たったのですが、TOPページにアクセスするとログイン画面が出てこずに空白ページが表示されてしまいます。
元に戻すと解消されます。
よろしくお願いいたします。
kodai - 投稿数: 1341
php-mbstringはインストールされているでしょうか?されていないようでしたら、インストールしてから試してみてください。
pepepe - 投稿数: 24
php-mbstringをインストールしたらTOP画面が出るようになりました。ですが、2byte文字、1byte文字両方ともトリガー登録できませんでした。
kodai - 投稿数: 1341
できない、というのはどのような状態ですか?何かエラーが出ているのか、真っ白な画面が表示されるのか、それともそれ以外なのか教えていただけるでしょうか?
また、php.iniのmbstring関連の設定はどのようになっているでしょうか。
pepepe - 投稿数: 24
何度もすみません。
トリガー登録できない時は下記エラーが表示されます。
[ERROR: Cannot add trigger]
Incorrect trigger expression. [{localhost:eventlog[security].str(ƒGƒ‰[)}=1]
mbstringの設定というのはこれのことでしょうか?
[mbstring]
; language for internal character representation.
;mbstring.language = Japanese
; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
;mbstring.internal_encoding = EUC-JP
; http input encoding.
;mbstring.http_input = auto
; http output encoding. mb_output_handler must be
; registered as output buffer to function
;mbstring.http_output = SJIS
; enable automatic encoding translation according to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
; portable libs/applications.
;mbstring.encoding_translation = Off
; automatic encoding detection order.
; auto means
;mbstring.detect_order = auto
; substitute_character used when character cannot be converted
; one from another
;mbstring.substitute_character = none;
; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
; enable strict encoding detection.
;mbstring.strict_encoding = Off
よろしくお願いします。
kodai - 投稿数: 1341
Webフロントエンドの言語設定は何になっているでしょうか?
Japaneseに設定されていなければJapaneseに設定し、ブラウザのエンコーディングがUTF-8になっていることを確認してから再度試してみてください。
それでもエラーが出るようでしたらデータベースの設定など他に原因があると思われます。OSやデータベース、PHPのバージョンを教えて頂けるでしょうか。
pepepe - 投稿数: 24
WEBフロントエンドの言語設定はEnglishにしていました。
Japaneseに変更、UTF-8になっていることを確認した上で再度試してみましたが、同じ現状が起こりました。
バージョンは下記の通りです。
OS:CentOS5
DB:MySQL 5.0.22
PHP:5.1.6
よろしくお願いします。
kodai - 投稿数: 1341
同じソフトウェアの構成で試してみたのですが、日本語が含まれるトリガーを登録することができており、うまく問題を再現することができていません。
こちらの環境ではCentOS5をインストール後、yumを使ってApache、PHP、MySQLをインストールし、ZABBIX 1.4.2をインストールしました。問題が起こっている環境と異なる点があればお教えください。特に、PHP、MySQLまわりでエンコード関連の設定をされていたりしないでしょうか?
また、2byte文字、1byte文字の両方でエラーが出ているのが気になります。可能性は低いとは思いますが、パッチを当てる際にファイルが破損しているといったことはないか再度確認してみて頂けるでしょうか。
pepepe - 投稿数: 24
こちらはCentOS5インストール時にapache,PHP,MySQLをインストールし、yumで全パッケージのアップデートを掛けた後にzabbix1.4.2をインストールしました。PHP,MySQLの設定はとくに触っていません。
パッチはwgetで落とした後にpatchコマンドを実行しました。
パッチ適用後のMD5の値は下記になります。
md5sum triggers.inc.php
cd22465441d4a67921302ce64d246ea7 triggers.inc.php
同じでしょうか?
kodai - 投稿数: 1341
返信おそくなりました。
md5sumの結果は同じ値になりました。問題なさそうですね。
こちらでも再現できるか試してみるつもりです。何かお気づきの点があれば情報を頂ければと思います。