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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

时间: 2024-11-19 15:37:52

Zabbix的安装与部署---问题处理(php65.6.28 mysqli 报错误 处理)的相关文章

Zabbix的安装与部署

Zabbix的安装与部署 一.Zabbix简介 1.zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供柔软的通知机制以让运维人员能够快速定位. 2.zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置. 被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端. server端:通过收集SNMP和

Zabbix服务安装部署及监控配置

1.1 Zabbix服务介绍 官方网站:http://www.zabbix.com/ The Enterprise-class Monitoring Solution for Everyone 企业级监控解决方案 zabbix是一个基于Web界面提供分布式系统监控以及网络监视功能的企业级的开源解决方案 Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以及让系统管理员快速定位解决存在的各种问题. 1.1 Zabbix主要特点 安装与配置简单,学习成本地,支持多语言(包

zabbix监控实战&lt;2&gt;----zabbix-server的安装与部署

第一章     zabbix-server的安装与部署 1.1  环境部署 eth0                               eth1 master      10.0.0.71                     172.16.1.71 node1       10.0.0.81                     172.16.1.81 1.2   安装zabbix-server 一. [[email protected] ~]# rpm -ivh https:/

zabbix系列-Grafana4.6.3+Zabbix 的安装部署

zabbix系列(五) Grafana4.6.3+Zabbix 的安装部署 伟创享 2019-07-31 11:27:18 使用了一段时间Grafana,感觉还挺好用的.部分效果图如下: ? zabbix的安装步骤请参考以下地址,就不再描述,本章主要记录Grafana的部署 https://blog.csdn.net/wu2700222/article/details/80520085 grafana官网地址:http://docs.grafana.org/installation/rpm/ 从

Linux监控和安全运维---zabbix安装及部署

zabbix服务端安装 [[email protected] conf.d]# rpm -ivh http://www.aminglinux.com/bbs/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm [[email protected] conf.d]# yum install -y  httpd mysql mysql-libs php php-mysql mysql-server php-bcmath php-g

监控之zabbix的安装部署+警报的配置

主机环境  redhat6.5 64位 实验环境  服务端1 ip172.25.25.1   主机名:server1.example.com           服务端2 ip172.25.25.2   主机名:server2.example.com   安装包    alert-agent-4.1.3.1-linux-x64.tar.gz   fping-2.4b2-16.el6.x86_64.rpm   iksemel-1.4-2.el6.x86_64.rpm   iksemel-utils

zabbix服务端的部署安装

基于centos6.5 + zabbix-2.4.6  且大部分命令均在zabbix的安装路径下!!比如/usr/local/zabbix/yum -y install gcc gcc-c++ autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php

zabbix实例集群部署-偏向于管理使用

zabbix实例集群部署 前言:已经折腾两个礼拜了,本文侧重点不在于安装,在于使用管理.部署请看文档或者百度,,很简        单 提示:zabbix关于模板.应用集.主机组.触发器.等等命令一定要谨慎,不要随意,防止自己糊涂了 主机组: 比如说,我的主机组用的是yunce56,因为我这个项目名称叫做yunce 模板:zabbix自带的templates不够合理,我自己重新写,DIY.比如说我专门监                          控cpu,我可以写yunce-cpu-li

Zabbix基于Proxy分布式部署实现Web监控

前言 在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能.但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情.目前比较流行的开源监控工具有Cacti.Nagios(Icinga).Zabbix等.本文带来的是Zabbix基于Proxy分布式部署实现Web监控. Zabbix 简介 Zabbix是一个基于Web界面提供分布式系统