目录

Zabbix基于lamp的安装流程... 1

1安装Mysql... 1

先安装相关的库和工具... 1

Mysql的安装... 1

2httpd的安装... 2

先安装相关的库和工具... 2

Httpd的安装... 2

3PHP的安装... 3

先安装相关的库和工具... 3

PHP的安装... 3

4zabbix的安装... 4

先安装相关的库和工具... 4

Zabbix的安装... 4

Zabbix的相关配置... 4

zabbix浏览器安装... 5

Zabbix配置php-ini的修改... 6

注意事项... 12

 

1安装Mysql

先安装相关的库和工具

yum install  cmake*  ncurses*  bison*  gcc-c++*  libxml2*  gettext*  openssl* libcurl*  net-snmp* libxml2* make* -y

说明

需联网安装

Mysql的安装

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all

说明

mysql的源码包copy/usr/local/src下然后tar解压进入到mysql目录下

Cmake下指令安装的路径生成config配置文件供make使用

 

make && make install

说明

编译安装

 

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chown mysql:mysql /usr/local/mysql/ -R

scripts/mysql_install_db  --user=mysql --skip-name-resolve --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

说明

 mysql_install_db 用于生成一份新的MYSQL权限表创建新的实例不会影响现有的权限表


用户登录mysql总是提示找不到socket的解决办法

vi /etc/my.cnf

把socket的路径都写上

两个模块都写上

 

2httpd的安装

先安装相关的库和工具

yum install   pcre-devel pcre libxml2-devel libpng libpng-devel  freetype-devel fontconfig-devel  jpeg-devel   libjpeg-devel  libXpm-devel libvpx-devel libtiff-devel gettext-devel libgcrypt-devel

 

./configure --prefix=/usr/local/libiconv && make && make install  

centos7  make编译出现

vim srclib/stdio.h

直接把1010行注释掉再make即可

./configure --prefix=/usr/local/apr && make && make install

./configure --prefix=/usr/local/apr-util --with-iconv=/usr/local/libiconv/ --with-mysql=/usr/local/mysql/ --with-openssl=/usr/   --with-apr=/usr/local/apr/

make && make install

说明

使用源码包预先安装libiconv  apr  apr-util 用于http安装时指定相应的路径


禁止apache显示目录

 

Httpd的安装

./configure --prefix=/usr/local/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/  --with-pcre=/usr --with-libxml2=/usr --with-ssl=/usr   -enable-rewrite -enable-so  --enable-load-all-modules

Make && make install

说明

使用源码包安装httpd后在浏览器中输入ip出现 IT WORKS!说明httpd安装成功

 

3PHP的安装

先安装相关的库和工具

./configure --prefix=/usr/local/zlib  && make && make install

./configure --prefix=/usr/local/libgd --with-zlib=/usr/local/zlib/  --with-png=/usr/ --with-freetype=/usr/  --with-fontconfig=/usr/ --with-jpeg=/usr/  --with-xpm=/usr/ --with-vpx=/usr/ --with-tiff=/usr/ && make && make install

./configure --prefix=/usr/local/mcrypt  && make && make install

说明

使用源码包预先安装 zlib/libgd,用于php安装是指定相应的路径

提示php configure: error: Cannot find OpenSSL's libraries
解决 ln -s /usr/lib64/libssl.so /usr/lib/

configure: error: Please reinstall the BZip2 distribution

yum install bzip2*


PHP的安装

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd/bin/apxs --enable-fpm  --with-libxml-dir=/usr/ --with-openssl=/usr/  --with-zlib=/usr/local/zlib/  --enable-bcmath --with-bz2=/usr/  --with-curl=/usr/  --with-libxml-dir=/usr/ --with-pcre-dir=/usr/ --with-openssl-dir=/usr/ --with-gd=/usr/local/libgd/  --with-vpx-dir=/usr --with-jpeg-dir=/usr/ --with-png-dir=/usr/  --with-zlib-dir=/usr/ --with-xpm-dir=/usr --with-freetype-dir=/usr/   --with-gettext=/usr/  --enable-mbstring   --with-mcrypt=/usr/local/mcrypt --with-mysql=/usr/local/mysql/  --with-zlib-dir=/usr/local/zlib/ --with-libxml-dir=/usr/ --enable-bcmath --with-mysqli=/usr/bin/mysql_config --with-gettext=/usr --enable-sockets

centos7错误:

configure: error: Cannot find libmysqlclient_r under /usr/local/mysql/.

Note that the MySQL client library is not bundled anymore!

其实这跟PHP没有关系那是因为在编译APACHE的时候使用--with-mpm模块所以就必须在编译MYSQL的时候加上--enable-thread-safe-client.参数
这是PHP5.2的一个改进在PHP5.2.0之前的版本都不需要MYSQL启用安全线程。关于--enable-thread-safe-client项的官方介绍如下:如何生成线程式客户端库总是线程安全的。最大的问题在于从套接字读取的net.c中的子程序并不是中断安全的。或许你可能希望用自己的告警中断对服务器的长时间读取以此来解决问题。如果为SIGPIPE中断安装了中断处理程序套接字处理功能应是线程安全的。SupeSite/X-为了避免连接中断时放弃程序MySQL将在首次调用mysql_server_init()、mysql_init()或mysql_connect()时屏蔽SIGPIPE。如果你打算使用自己的SIGPIPE处理程序首先应调用mysql_server_init()然后安装你的处理程序.


还有第二种解决方法比较方便编译之前先处理一下mysql的库默认查找libmysqlclient_r.so可是mysql默认为libmysqlclient.so内容完全一样做个链接即可
# cd /usr/local/mysql/lib/mysql/ 
# ln -s libmysqlclient.so.15.0.0 libmysqlclient_r.so


Make && make install

说明

1安装完成后需要修改httpd的配置文件是httpd支持php

Vi /etc/httpd/httpd.conf

添加

AddType application/x-httpd-php .php .phtml 

重启下httpd使配置生效   service httpd restart

在Listen的ip后面加上端口可以改变http的固定端口

例如Listen 127.0.0.18888

2cp php.ini-development /usr/local/php/lib/php.ini  生成php的配置文件

3httpdhtdocs目录下创建test.php文件内容如下

<?php

phpinfo();

?>

用于验证php是否正确安装成功

[root@bbs conf]# httpd start

AH00557: httpd: apr_sockaddr_info_get() failed for bbs

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message


把httpd.conf的ServerName改成127.0.0.1


root@bbs logs]# more error_log 

[Fri Oct 16 14:31:34.638670 2015] [unique_id:alert] [pid 10800:tid 140113200580352] (EAI 2)Name or service not known: AH01564:

unable to find IPv4 address of "bbs"

AH00016: Configuration Failed

修改/etc/hosts

127.0.0.1   bbs localhost localhost.localdomain localhost4 localhost4.localdomain4


 4zabbix的安装

zabbix 备份基本数据  

mysqldump --socket=/usr/local/mysql/mysql.sock\

 --ignore-table=zabbix.history \

 --ignore-table=zabbix.history_log\

 --ignore-table=zabbix.history_str\

 --ignore-table=zabbix.history_text\

 --ignore-table=zabbix.history_uint\

 --ignore-table=zabbix.trends\

--ignore-table=zabbix.trends_uint zabbix > zabbix.sql

先安装相关的库和工具

yum install OpenIPMI-devel OpenIPMI-libs ipmitoolfreeipmi-devel OpenIPMI-python –y

 

groupadd zabbix

useradd -r -s /sbin/nologin -g zabbix zabbix

说明

增加zabbix 和用户组

Zabbix的安装

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-libcurl=/usr/bin/curl-config --with-iconv=/usr/local/libiconv/ --with-openipmi=/usr/ --with-ssh2=/usr/ --with-net-snmp=/usr/bin/net-snmp-config --with-libxml2=/usr/bin/xml2-config --enable-java  (使能java用于jvm监控比如tomcat)

Make && make install

Zabbix的相关配置

mysql -u root –p

mysql> create database zabbix;

mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql> flush privileges;

mysql> use zabbix;

mysql> source /usr/local/src/zabbix-2.0.14/ database/mysql/schema.sql

mysql> source /usr/local/src/zabbix-2.4.0/database/mysql/p_w_picpaths.sql

mysql> source /usr/local/src/zabbix-2.4.0/database/mysql/data.sql

mysql> exit

说明

mysql进行配置创建授权给zabbix用户用于登录数据库导入zabbix源码包中的数据到数据库中

 

vim /etc/services
zabbix-agent    10050/tcp       # zabbix-agent
zabbix-agent    10050/udp
zabbix-trapper  10051/tcp      # zabbix-trapper
zabbix-trapper  10051/udp

说明

services中添加zabbix的端口

 

 cp misc/init.d/fedora/core/zabbix_server /etc/init.d/

 cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

 

 cp -R frontends/php/ /usr/local/apache/htdocs/zabbix

 

vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log      

DBName=zabbix                                  
DBUser=zabbix                                  

DBPassword=zabbix                        

说明

拷贝zabbix_server zabbix-agnetd/etc/init.d/用于服务启动使用

frontends/php/下所有的文件拷贝到httpdhtdocs/zabbix目录下用于浏览器安装使用

修改zabbix_server的配置文件定义数据库的用户名和密码

 

 vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix

说明

修改zabbix_server zabbix_agentd zabbix的安装目录路径

 

service zabbix_server start

service zabbix_agentd start

说明

启动zabbix的服务

如果提示找不到libmysqlclient.so.18做如下操作

ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib

如果提示找不到libiconv.so.2做如下操作

ln -s /usr/local/libiconv/lib/libiconv.so.2 /usr/lib

zabbix浏览器安装

在浏览器地址栏中输入IP/zabbix

迁移的问题

把之前的htdoc下的所有文件copy到新主机上包裹php.ini等


出现如下进入zabbix的欢迎页面点击netx

说明

这就需要修改php的配置文件  php.ini(路径可通过php的测试页面可查看到)

 

 

Zabbix配置php-ini的修改

vim /usr/local/php/lib/php.ini

post_max_size = 16M          
max_execution_time = 300     
max_input_time = 300            

date.timezone = Asia/Shanghai

always_populate_raw_post_data = -1

 

解决databases support的问题

分布进入到mysqli /bcmath/  /gettext/的目录数据库源码中

分布用phpize生成configure文件:

/usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20041225

Zend Module Api No:      20060613

Zend Extension Api No:   220060519

./configure --prefix=/usr/local/mysqli \

--with-php-config=/usr/local/php/bin/php-config \  

 --with-mysqli=/usr/local/mysql/bin/mysql_config

 

说明  

---根据环境实际路径find / -name mysql_config

--根据环境实际路径find / -name php-config

 

make

说明

如果提示找不到ext/mysqlnd/mysql_float_to_double.h,但是mysql_float_to_double.h确实存在查看报错.c的文件include包含的“ext/mysqlnd/mysql_float_to_double.h,包含的是相对路径改成绝对路径“/usr/local/src/php-5.6.10/ext/mysqlnd,然后重新make即可

 

make install

Installing shared extensions:     /usr/local/php/lib/php/extensions/debug-non-zts-20060613/

 

 

然后在/usr/local/lib/php.ini

加上一句

extension=/usr/local/php/lib/php/extensions/debug-non-zts-20060613/mysqli.so

 

/bcmath/  /gettext/的操作同上

重新启动apache即可看到已经加载mysqli成功。

 

解决 mbstring.func_overload的问题

修改php.ini mbstring.func_overload值修改为0即可

 

解决always_populate_raw_post_data的问题

修改php.ini always_populate_raw_post_data值修改为-1即可

把相对应的错误修改OKretry即可查看到如下界面

点解next配置mysql的相关信息

点击next

 

点击next

 

点击next

 

如果出现zabbix.conf.php文件创建失败点击下载配置文件按钮下载该配置文件并把该文件上传到/usr/local/httpd/htdocs/zabbix/conf/目录下点击retry

 

点击finish进入登录zabbix的页面

 

输入admin  zabbix默认进入zabbix监控页面

 

至此zabbix安装完成

 

 

注意事项

1在选择zabbix版本时可以不要选择最新的zabbix版本zabbix2.4.5

在安装中最新的zabbix可能存在和lamp其他安装包兼容的问题

zabbix浏览器安装过程中可能会出现总会在welcome页面和第二个配置页面循环出现不能进入到第三部的配置mysql的界面导致zabbix无法安装。