解決zabbix監(jiān)控因php問題導(dǎo)致圖形界面中文亂碼方法
解決因編譯php中添加了-enable-gd-jis-conv選項導(dǎo)致Zabbix監(jiān)控系統(tǒng)圖形界面中文亂碼問題
現(xiàn)象:

php編譯參數(shù):

說明:
如果PHP編譯時啟用–enable-gd-jis-conv選項的話,那么非ASCII字符(例如漢字、拼音、希臘文和箭頭) 會被當(dāng)成EUC-JP編碼 (phpinfo中美其名曰“支持JIS編碼的字體”), 從而導(dǎo)致亂碼(由于西文字體沒有假名或漢字,一般表現(xiàn)為全部是方框)。imagettftext()函數(shù)是將字符寫入到圖片的函數(shù),這個問題就是由這個函數(shù)導(dǎo)致的。
在網(wǎng)上查了好幾篇教程不全,以下為本人生產(chǎn)實踐操作,在zabbix3.2版本,php7.2版本
方法一:
重新編譯安裝php,禁用-enable-gd-jis-conv選項,這種方式代價較大;
方法二:
因生產(chǎn)環(huán)境php使用年限比較久,不知道是否有應(yīng)用在使用,不敢輕易重新編譯,故按照方法二解決
第一步:
在/etc/nginx/html/zabbix/include中修改graphs.inc.php文件(先備份)
cp graphs.inc.php graphs.inc.php.bak
vim graphs.inc.php #在末尾添加如下代碼
function to_entities($string){
$len = strlen($string);
$buf = "";
for($i = 0; $i < $len; $i++){
if (ord($string[$i]) <= 127){
$buf .= $string[$i];
} else if (ord ($string[$i]) <192){
//unexpected 2nd, 3rd or 4th byte
$buf .= "?";
} else if (ord ($string[$i]) <224){
//first byte of 2-byte seq
$buf .= sprintf("&#%d;",
((ord($string[$i + 0]) & 31) << 6) +
(ord($string[$i + 1]) & 63)
);
$i += 1;
} else if (ord ($string[$i]) <240){
//first byte of 3-byte seq
$buf .= sprintf("&#%d;",
((ord($string[$i + 0]) & 15) << 12) +
((ord($string[$i + 1]) & 63) << 6) +
(ord($string[$i + 2]) & 63)
);
$i += 2;
} else {
//first byte of 4-byte seq
$buf .= sprintf("&#%d;",
((ord($string[$i + 0]) & 7) << 18) +
((ord($string[$i + 1]) & 63) << 12) +
((ord($string[$i + 2]) & 63) << 6) +
(ord($string[$i + 3]) & 63)
);
$i += 3;
}
}
return $buf;
}
第二步:
找到該文件中imagettftext()函數(shù)(一共三處)
將最后一個參數(shù)$string修改為to_entities($string),三處都需要修改,無需重啟,刷新即可解決問題。


總結(jié)
以上所述是小編給大家介紹的解決zabbix監(jiān)控因php問題導(dǎo)致圖形界面中文亂碼方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
Zabbix 2.4.5自帶MySQL監(jiān)控的配置使用教程
Zabbix 有自帶監(jiān)控 MySQL 的模板,但是卻不能直接使用,下面這篇文章主要給大家介紹了關(guān)于Zabbix 2.4.5自帶MySQL監(jiān)控配置使用的相關(guān)資料,文中通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
kubernetes集群搭建Zabbix監(jiān)控平臺的詳細(xì)過程
Zabbix是一個基于Web界面的分布式系統(tǒng)監(jiān)控的企業(yè)級開源軟件??梢员O(jiān)視各種系統(tǒng)與設(shè)備的參數(shù),保障服務(wù)器及設(shè)備的安全運營,這篇文章主要介紹了kubernetes集群搭建Zabbix監(jiān)控平臺,需要的朋友可以參考下2022-07-07
Zabbix?Timeout?設(shè)置不當(dāng)導(dǎo)致的問題及解決方案
這篇文章主要介紹了Zabbix?Timeout設(shè)置不當(dāng)導(dǎo)致的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06
Zabbix通過PSK共享密鑰實現(xiàn)Server和Agent的通信加密
這篇文章主要介紹了Zabbix通過PSK共享密鑰實現(xiàn)Server和Agent的通信加密,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-06-06
zabbix監(jiān)控Linux系統(tǒng)服務(wù)的流程
這篇文章主要介紹了zabbix監(jiān)控Linux系統(tǒng)服務(wù)的流程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

