解决zabbix监控因php问题导致图形界面中文乱码方法
解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题
现象:

php编译参数:

说明:
如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字、拼音、希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰“支持JIS编码的字体”), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框)。imagettftext()函数是将字符写入到图片的函数,这个问题就是由这个函数导致的。
在网上查了好几篇教程不全,以下为本人生产实践操作,在zabbix3.2版本,php7.2版本
方法一:
重新编译安装php,禁用-enable-gd-jis-conv选项,这种方式代价较大;
方法二:
因生产环境php使用年限比较久,不知道是否有应用在使用,不敢轻易重新编译,故按照方法二解决
第一步:
在/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()函数(一共三处)
将最后一个参数$string修改为to_entities($string),三处都需要修改,无需重启,刷新即可解决问题。


总结
以上所述是小编给大家介绍的解决zabbix监控因php问题导致图形界面中文乱码方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关推荐
-
Zabbix监控Linux主机设置方法
说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配置防火墙,开启10050.10051的TCP和UDP端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件 -A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCE
-
PHP解决中文乱码
在php中,中文乱码非常头疼,很麻烦,所以根据在编程的经验,总结以下方法(以utf_8为例), 1.php中在头部header设置编码方式 header("Content-type:text/html;charset=utf-8"); 2.php中用iconv转码 echo iconv("GB2312","UTF-8",'中文内容'); 3.在html中用<meat>标签声明 <meta http-equiv="Con
-
Zabbix系统端口监控状态
一.监控系统Zabbix -添加端口监控 对于进程和端口的监控,可以使用zabbix自带的key进行监控,只需要在server端维护就可以了,相比于nagios使用插件去监控的方式更为简单.下面简单介绍配置: 1.监控端口 zabbix监控端口使用如下key: key:net.tcp.listen[port] Checks if this port is in LISTEN state. 0 - it is not, 1 - it is inLISTEN state. 2.解释: 监听端口状态,
-
php中文乱码问题的终极解决方案汇总
前言 本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,那么为什么会出现这种乱码的情况呢?一般来说,乱码的出现有2种原因,一种是由于编码(charset) 设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的"天书",第二种就是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码
-
Zabbix监控交换机设置方法
说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对交换机进行监控. 具体操作: 以下操作在被监控的交换机上进行,这里以Cisco交换机为例. 一.登录到Cisco交换机,开启snmp服务 注意:使用telnet或者仿真终端登录到交换机特权配置模式 enable #切换到特权模式 configure terminal #进入全局配置模式 snmp-server community public ro #打开交换机snmp服务,设置团体名称为public,只读 snmp-serve
-
Zabbix实现批量监控端口状态的方法
引言 在监控生产环境的服务的时候,通常需要对多个端口进行监控,如果我们手动一个一个的添加,这将是一件很麻烦的事情,为了减少这样的情况,我们采用批量添加监控端口的方法,这是非常常见的需求,zabbix也是支持这种方式的,需要使用zabbix的Discovery功能来实现,下面小编就给大家分享一下批量添加端口的占用. 使用Zabbix监控如何监控服务器端口状态,大概的流程:zabbix监控服务自带端口监控的监控项,所以需要我们自己手动定义所监控的item,客户端获取的端口列表通过agent传送到服务
-
使用zabbix监控mongodb的方法
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. Mongodb如今越来越火,要做好对mongodb的监控就需要从它的安装配置,到简单的command语句使用,再到对它运行机制以及状态获取方法的掌握. mongodb有三种基本的状态获取方式: 1.mongostat 2.开启28017的监听端口,curl
-
PHP MPDF中文乱码的解决方式
废话不多说了,直接奔入主题了. 推荐教程:PHP使用MPDF类生成PDF的方法 1.config.php文件,大约67行: $this->autoLangToFont = true; 2.使用的时候 注意, +aCJK 这个参数,而不是 c这个参数 $mpdf=new \mPDF('+aCJK','A4','','',32,25,27,25,16,13); $mpdf->WriteHTML($content); $mpdf->Output(); 然后就输出中文了 这个针对版本mPDF6
-
PHP附件下载中文名称乱码的解决方法
本文实例讲述了PHP附件下载中文名称乱码的解决方法.分享给大家供大家参考,具体如下: PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码. 此时就需要对标题进行编码,也就是说先进性urlencode,然后再放入header,然后问题就解决了. $filename = urlencode("下载文档"); header ( "Content-disposition: attachment; filename=$filename.xls" ); 网上说,在RFC
-
解决zabbix监控因php问题导致图形界面中文乱码方法
解决因编译php中添加了-enable-gd-jis-conv选项导致Zabbix监控系统图形界面中文乱码问题 现象: php编译参数: 说明: 如果PHP编译时启用–enable-gd-jis-conv选项的话,那么非ASCII字符(例如汉字.拼音.希腊文和箭头) 会被当成EUC-JP编码 (phpinfo中美其名曰"支持JIS编码的字体"), 从而导致乱码(由于西文字体没有假名或汉字,一般表现为全部是方框).imagettftext()函数是将字符写入到图片的函数,这个问题就是由这
-
解决pycharm下os.system执行命令返回有中文乱码的问题
如下所示: source = ['C:\\Users\\admin\\Desktop\\pythonLearning'] target_dir = 'C:\\Users\\admin\\Desktop' print(time.strftime('%Y%m%d%H%M%S')) target = target_dir + os.sep + time.strftime('%Y%m%d%H%M%S') + '.zip' if not os.path.exists(target_dir): os.mkd
-
Java Web项目中解决中文乱码方法总结(三种最新方法)
目录 前言 问题背景 下面我说三种方法供大家参考 方法一: 方法二: 第三种方法: Tomcat结构与介绍 bin conf lib logs temp webapps work 前言 JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台.最早由Sun公司定制并发布,后由Oracle负责维护.JavaEE平台规范了在开发企业级web应用中的技术标准.在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会
-
解决SpringMVC、tomcat、Intellij idea、ajax中文乱码问题
使用idea进行JavaWeb开发时,在前端与后台交互常常出现乱码问题,包括日志/控制台输出乱码,参数乱码等问题,归根结底是编码格式不对,解决方法汇总如下. ajax 乱码 解决方法:在contentType中添加"charset=utf-8" $.ajax({ url:"/rest/get", type:"POST", contentType:"application/json;charset=utf-8", //添加编码格
-
详解Linux中文乱码问题终极解决方法
初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,下面来看一下linux乱码的具体解决办法吧. 方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 方法二: 修改/etc/sysconfig/i18n文件 #
-
探讨PHP JSON中文乱码的解决方法详解
我们知道在使用Ajax技术与PHP后台交互时,中文乱码是常有的事,JSON作为与XML类似的数据交换格式,在PHP用来进行交互时也会出现中 文乱码的情况,解决PHP JSON中文乱码的方法思路其实与PHP Ajax传值中文字符乱码的解决方法类似,下面我以教程形式详细介绍下解决PHP JSON中文乱码的方法. 为什么PHP与JSON交互时会出现中文乱码? 由于JSON与JS一样,对于客户端的字符是以UTF8的形式处理,即JSON提交或接受返回的字符是以UTF8形式处理,当与PHP交互时,如果数据库
-
Java Web开发项目中中文乱码解决方法汇总
Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码 问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存文件内容时,使用的是utf-8的编码格式,然后在jsp页面的开始处添加<%@ pageEncoding="utf-8"%>就可以解决这种中文乱码问题 第二种情况:调用servlet页面显示乱码 问题描述:通过浏览器调用servlet,servlet在浏览器中显示的内容出现乱码
-
Zabbix监控方案-官方最新4.4版本【推荐】
Zabbix 2019/10/12 Chenxin 参考 https://www.zabbix.com/documentation/4.0/zh/manual https://baike.baidu.com/item/zabbix/6780368?fr=aladdin 简介 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题. zab
-
搭建zabbix监控以及邮件报警的超级详细教学
目录 一.zabbix 1.1 简介 1.2 zabbix主要功能 1.3 zabbix的主要特点 1.4 zabbix组件 1.5 zabbix原理 二.基于LNMP环境搭建zabbix监控 2.1 安装nginx 2.2 安装mariadb 2.3 安装php 2.4 修改php-fpm配置文件 2.5 修改nginx配置文件支持PHP并修改php配置文件 2.6 测试网页 2.7 测试连接数据库 2.8 建立数据库及用户并且授权 2.9 测试连接zabbix数据库 2.10 zabbix
随机推荐
- php加密算法之实现可逆加密算法和解密分享
- MVC4制作网站教程第二章 用户修改资料2.4
- Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
- phpphp图片采集后按原路径保存图片示例
- python实现的一个p2p文件传输实例
- PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
- JS的replace方法介绍
- Yii2中使用join、joinwith多表关联查询
- js数组的操作指南
- C#连接Excel2003和Excel2007以上版本做数据库的连接字符串
- JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
- javascript 对象的定义方法
- jQuery遍历节点树方法分析
- 微信小程序开发之Tabbar实例详解
- 解决springboot 获取form-data里的file文件的问题
- Mybatis拦截器的实现介绍
- php文件管理基本功能简单操作
- 深入理解c# checked unchecked 关键字
- Android List删除重复数据
- Cisco网络设备访问安全基础
