Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)
1)php65.6.28 mysqli 报错误 处理
http://www.xiaochengfu.com/index.php/index/detail/aid/92.html
2)linux下php添加mysqli扩展mysqli_api.lo错误
http://jingyan.baidu.com/article/a3f121e4cb684afc9152bb73.html
一、前期准备
- MySQL的安装与配置
具体步骤参见我之前的博客:(二)MySQL的安装与配置 - 为了配置Zabbix前端,我需要Nginx和PHP的支持,具体步骤参见:Nginx的安装与配置以及如何支持PHP。但是因为安装配置Zabbix前端,因此安装PHP需要加入特定选项,因此PHP的具体安装方法将在文章末尾根据排错过程给出。
依赖包安装
# yum -y install net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath fping OpenIPMI-devel php-mbstring二. 安装zabbix
1.将源码中的zabbix-3.0.4/database/mysql 下的sql文件导入zabbix数据库(必须按照以下顺序到入)
首先创建名为 zabbix 的数据库
mysql> create database zabbix default character set utf8;
# tar -xvzf zabbix-3.0.4.tar.gz
# cd zabbix-3.0.4
# /usr/local/mysql/bin/mysql -u root -h localhost zabbix < schema.sql
# /usr/local/mysql/bin/mysql -u root -h localhost zabbix < images.sql
# /usr/local/mysql/bin/mysql -u root -h localhost zabbix < data.sql
- 2.创建用户和组
# groupadd zabbix
# useradd -g zabbix zabbix
- 3.安装zabbix服务端(服务端本身也要监控,因此同时安装agent)
# ./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp
安装zabbix提示:
checking for net-snmp-config... no
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决方案:
# yum install net-snmp-devel -y
- 4.修改配置文件
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=root #我直接用root用户作为zabbix数据库的用户,且没有设置密码
ListenIP=127.0.0.1
- 5.启动zabbix
# /usr/local/zabbix/sbin/zabbix_server
启动时报错:
Starting zabbix_server: /usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
解决方案:
# locate libmysqlclient.so.18
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf
# ldconfig
三、配置 web界面支持
若要web界面的支持,则需要Nginx(需要php-fpm)和PHP的支持,安装方法参见文章开头的传送连接。Nginx和PHP安装完成后,进行如下操作。
- 1.将zabbix-3.0.4/frontends/php中的所有文件拷贝进入web服务的root目录下中的zabbix中,此处我用的是Nginx作为web服务器。
# cd zabbix-3.0.4/frontends/php
# mkdir /usr/local/nginx/html/zabbix/
# cp -a . /usr/local/nginx/html/zabbix/
启动nginx和php-fpm
# /usr/local/nginx/sbin/nginx
# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
在安装PHP时,一定要看清Zabbix的官方文档上给出的Requirements,否则在编译安装PHP时会漏掉很多支持组件的信息,导致无法顺利的在web界面配置Zabbix前端。
以下是我所踩过的坑:
- 错误1
类似出现:PHP option "post_max_size" 8M 16M Fail 等
需要更改php.ini文件,但是在安装PHP时需要指定php的配置文件的存放位置,如我的指定为: --with-config-file-path=/usr/local/php/etc
然后将源码里面的php.ini-production 拷贝到/usr/local/php/etc/php.ini
注意:在编译安装完成php后,配置完成启动php-fpm时,直接执行/usr/local/php/sbin/php-fpm 虽然可
以启动,但是这样的话,php.ini文件是没有生效的,这就会导致即使你更改了php.ini里面的参数,Zabbix前端检测依然无法通过。解决方法是按照以下方式启动php-fpm:
# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
- 错误2
PHP bcmath off Fail --enable-bcmath
PHP mbstring off Fail --enable-mbstring
PHP sockets off Fail --enable-sockets等
这些错误只要在安装PHP时加上对应选项即可,如:--enable-bcmath
- 错误3
PHP databases support off Fail --with-mysql=/usr/local/mysql
解决方案:
这种错误是提示不支持MySQL,但是我们在编译安装时是指定了的,为何出错了?因为更新后的PHP版本,现在需要mysqli的支持才能行,mysqli是对mysql函数(注意这里指的是PHP中的函数)的优化,因此我们需要安装进入PHP源码中的mysqli目录下就可安装,方法如下:
# cd php-5.6.25/ext/mysqli/
# phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
# make && make install
# cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
# ls
如果有mysqli.so文件,就说名安装好了。
接着编辑php配置文件 /usr/local/php/etc/php.ini,加入extension=mysqli.so(可以写全路径)
在make && make install时出现:
/root/soft/php-5.6.25/ext/mysqli/mysqli_api.c:36:47: error: ext/mysqlnd/mysql_float_to_double.h: No such file or directory
make: *** [mysqli_api.lo] Error 1
解决方法:编辑mysqli_api.c,然后注释掉mysql_float_to_double.h这个头文件(讲真,我不知道这样做会有什么后果)
- 系列错误4
PHP gd JPEG support off Fail --with-jpeg-dir=DIR GD: Set the path to libjpeg install prefix
解决方案:编译安装jpeg
# wget http://www.ijg.org/files/jpegsrc.v9b.tar.gz
# mkdir /usr/local/jpeg
# ./configure --prefix=/usr/local/jpeg --enable-shared
PHP gd PNG support off Fail --with-png-dir=DIR GD: Set the path to libpng install prefix
解决方案:编译安装libpng
# wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.24.tar.gz?download
# mkdir /usr/local/libpng
# ./configure --prefix=/usr/local/libpng
要编译 GD 库,需要libpng 和 libjpeg(前面已经安装了)
PHP gd unknown 2.0 Fail --with-gd=DIR Include GD support. DIR is the GD library base install directory BUNDLED
解决方案:进入PHP源码的ext/gd目录下编译安装GD库
# yum install gd-devel
# cd php-5.6.8/ext/gd
# phpize
# ./configure --with-jpeg-dir=/usr/local/jpeg --with-php-config=/usr/local/php/bin/php-config
提示:configure: error: png.h not found.
解决:# yum install libpng-devel
# make clean
# make install
我在编译php时执行源码安装的 gd(/usr/local/gd)目录,编译就不能通过。直接加--with-gd就行(我怀疑是我用yum安装了 gd-devel的缘故)
PHP gd FreeType support off Fail --with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix
解决方案:编译安装FreeType
# wget https://sourceforge.net/projects/freetype/files/freetype2/2.6.5/freetype-2.6.5.tar.gz/download
# mkdir /usr/local/freetype
# ./configure --prefix=/usr/local/freetype/
# make && make install
PHP gettext off Warning --with-gettext=DIR Include GNU gettext support
解决方案:
# wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.tar.gz
# mkdir /usr/local/gettext
# ./configure --prefix=/usr/local/gettext
因此为了支持Zabbix前端,编译安装PHP时需要以下选项:
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--enable-fastcgi \
--enable-fpm \
--with-config-file-path=/usr/local/php/etc \
-with-zlib=/usr/local/zlib \
--enable-bcmath \
--enable-mbstring \
--enable-sockets \
--with-gettext=/usr/local/gettext \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local/libpng \
--with-freetype-dir=/usr/include/freetype2/freetype \
--with-gd
注意:
原文链接:http://www.jianshu.com/p/68016c9006f4
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)的更多相关文章
- LNMP+Zabbix的安装与部署
LNMP+Zabbix的安装与部署 一.Zabbix简介 1.zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务 ...
- zabbix监控实战<2>----zabbix-server的安装与部署
第一章 zabbix-server的安装与部署 1.1 环境部署 eth0 eth1 master 10.0.0.71 ...
- centos7下zabbix安装与部署
1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系 ...
- zabbix的安装部署及自定义监控的实现
此篇感谢我的小师傅. 1. Zabbix主要功能和优劣势说明 1. Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库 ...
- zabbix系列-Grafana4.6.3+Zabbix 的安装部署
zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: zabb ...
- Centos7下的zabbix安装与部署
目录: 1.Zabbix介绍 2.LAMP/LNMP介绍 3.Zabbix安装与部署 1.Zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. ...
- 详解zabbix中文版安装部署
一.zabbix简介(摘自百度百科) zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软 ...
- zabbix server 安装部署
一:安装zabbix服务端 1.部署准备 命令:iptables -F #关闭防火墙命令:systemctl stop firewalld #关闭防火墙 设置解析,自建yum源 命令:c ...
- zabbix安装、部署、lnmp(一)
最近入手zabbix,准备好好的研究,好好的弄. 环境准备: mysql:5.6.29 PHP:5.6.12 Nginx:1.8.0 zabbix:3.2.6 操作系统:Centos6 用户:普通 ...
随机推荐
- Unity3D ShaderLab Half Lambert光照模型
Half Lambert光照模型 说到Half Lambert ,就不得不说反恐精英了,在制作反恐精英的过程中,为了防止物体的背面光丢失而显得太过平面化,就用了这个称之为half lambert的技术 ...
- 转载:CancellationToken
http://www.cnblogs.com/Abbey/archive/2011/09/12/2174208.html 最近在学习.NET中的线程同步.其中一个重要的技术叫线程的取消(中止),涉及的 ...
- 世纪互联运营的Microsoft Azure正式支持FreeBSD虚拟机镜像
自2012年开始,微软云计算与企业事业部和Citrix思杰,NetApp达成合作,共同开发出第一版针对Hyper-V虚拟设备驱动以及相关的用户态程序,并将此称之为集成服务(Integration Se ...
- Java 返回一个整数的各个数字之和的一种方法
public static long sumDigits(long n){ long total=0; long number=n; while(number!=0){ total=total+num ...
- jquery获取所有选中的checkbox的ID
//获取所有选中的CheckBox的id function getCheckBox() { var spCodesTemp = ""; $("input:checkbox ...
- linux 中 chmod/chown/cngrp的用法与区别
1.chgrp(转变文件所属用户组) chgrp 用户组 文件名 .若是整个目次下的都改,则加-R参数用于递归. 如:chgrp -R user smb.conf 2.chown(转变文件拥有者) ...
- 关于获取目录的N种方法 的汇总
前段时间在Global.asax.cs中的Session_End中使用Server.MapPath() 出现"服务器操作在此上下文中不可用"异常. 网络上给出的解决方案:Syste ...
- Android 客户端和服务器 json交互
http://www.cnblogs.com/jyan/articles/2544974.html 1.JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. ...
- Tomcat的JVM优化
一.JVM管理内存段分类 1.线程共享内存 方法区:存储jvm加载的class.常量.静态变量.及时编译器编译后的代码等 java堆:存储java所有对象实例.数组等 2.线程私有内存 程序计数寄存器 ...
- LB负载均衡集群及DR模式配置
一.系统环境准备: 1.dir服务器 主机名称:dir 系统环境:CentOS release 6.5 (Final) 外网ip:192.168.1.203(网络模式桥接) vip:192.168.1 ...