先配置好LAMP

1、先安装好mysql(在此略)
2、yum install openssl*

tar -zxvf httpd-2.2.15.tar.gz
cd httpd-2.2.15
./configure --prefix=/usr/local/apache  --enable-modules  --enable-ssl  --with-mysql=/usr/local/mysql/ --enable-module=so

make ; make install

2、yum install curl*
tar -zxvf zlib-1.2.3.tar.gz
./configure --prefix=/usr/local/zlib
make;make install

64位应该还有点问题。我后面重新编译了此软件包。(以下为64位安装)
cd zlib-1.2.3
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/
make ; make install
make clean



yum install gcc

tar -zxvf libpng-1.2.31.tar.gz
cd libpng-1.2.31
./configure  --prefix=/usr/local/libpng
make ; make install


tar -zxvf freetype-2.3.5.tar.gz
cd freetype-2.3.5
./configure --prefix=/usr/local/freetype
make ; make install


tar -zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}
./configure --prefix=/usr/local/jpeg  --enable-shared --enable-static
make ; make install


64位出现报错,按以下安装
cp /usr/share/libtool/config.guess .
cp /usr/share/libtool/config.sub .
./configure --prefix=/usr/local/jpeg  --enable-shared --enable-static
make ; make install

yum install gettext

tar -zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
./configure --with-freetype-config=/usr/local/freetype/bin/freetype-config   --with-expat=builtin
make ; make install
yum install fontconfig

tar -zxvf gd-2.0.35.tar.gz
cd gd-2.0.35

 CPPFLAGS="-I/usr/local/freetype/include -I/usr/local/jpeg/include -I/usr/local/libpng/include -I/usr/local/gettext/include" ./configure --prefix=/usr/local/gd2/ --with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/ --with-gettext=/usr/local/gettext/
make ; make install


tar -zxvf libxml2-2.6.30.tar.gz
cd libxml2-2.6.30
./configure --prefix=/usr/local/libxml2
make ; make install


yum install libxslt


tar -zxvf php-5.2.6.tar.gz

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql/ --enable-ftp --enable-sockets  --with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --enable-bcmath --enable-soap --enable-mbstring --with-gettext=/usr/local/gettext



需要安装gettext

make ; make install


cp php.ini-dist /usr/local/php/lib/php.ini


#cp /root/php-5.2.6/php.ini-dist /usr/local/php/lib/php.ini
   #vi /usr/local/php/lib/php.ini
   1.将extension=php_mysql.dll前面的#去掉
   2.将脚本超时的30s(PHP max execution time) 改成300s
   3.将date.timezone ="asia/shanghai"

   注意:/usr/local/apache/conf/httpd.conf加上如下代码使apache执行PHP

LoadModule php5_module modules/libphp5.so (这段代码肯定可以在httpd.conf找到,如果找不到则需要重新编译了)

   AddType application/x-httpd-php .php
   AddType application/x-httpd-php-source .phps
   (这两行是让apache知道php的文件类型)
   DirectoryIndex index.html  改成DirectoryIndex index.html index.php
   让apache默认的首页也支持index.php

注意:重启apache服务器,使得其加载php解析

在默认的/usr/local/apache/htdocs下建立info.php(给予777权限可执行权限)
<?php
phpinfo();
?>



yum install libssh

yum install  net-snmp net-snmp-devel

或安装

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath

tar -zxvf zabbix-1.8.9.tar.gz
cd zabbix-1.8.9

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy  --with-mysql=/usr/local/mysql/bin/mysql_config  --with-net-snmp  --with-libcurl





mysql> create database zabbix character set utf8;
grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

# cat ./create/schema/mysql.sql |mysql -uroot -proot zabbix          
# cat ./create/data/data.sql |mysql -uroot -proot zabbix              
# cat ./create/data/p_w_picpaths_mysql.sql |mysql -uroot -proot zabbix  


添加zabbix服务对应的端口(可以省略,但是官方建议有)

cat >>/etc/services<<EOF

zabbix-agent 10050/tcp Zabbix Agent

zabbix-agent 10050/udp Zabbix Agent

zabbix-trapper 10051/tcp Zabbix Trapper

zabbix-trapper 10051/udp Zabbix Trapper

EOF

mkdir /etc/zabbix

cp misc/conf/*.conf /etc/zabbix/
修改
vi /etc/zabbix/zabbix_server.conf
sed -i 's/^\(DBUser=\).*$/\1zabbix/g' /etc/zabbix/zabbix_server.conf

sed -i 's/^\(.*\)\(DBPassword=\).*$/\zabbix/g' /etc/zabbix/zabbix_server.conf


给Zabbix服务端软件应用程序做软连接

cd /usr/local/zabbix/bin/

for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

cd /usr/local/zabbix/sbin/

for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done
添加数据库Lib文件位置到/etc/ld.so.conf中,并使其生效

/usr/local/mysql/lib/mysql/加到 /etc/ld.so.conf
ldconfig生效

拷贝相应的web程序到相关WEB服务目录下
cd /usr/local/src/zabbix-1.8.9
cp -r frontends/php /usr/local/apache/htdocs/zabbix

拷贝必要的zabbix服务端和客户端启动脚本到启动目录/etc/init.d目录下,并进行相应修改

cp misc/init.d/redhat/8.0/zabbix_server /etc/init.d/

chmod a+x /etc/init.d/zabbix_server

cp misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d/

chmod a+x /etc/init.d/zabbix_agentd

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_server

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_agentd


修改PHP配置文件php.ini内容使其满足zabbix安装配置需求
sed -i 's/^\(.*\)date.timezone =.*$/date.timezone = Asia\/Shanghai/g'   /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)post_max_size =.*$/post_max_size = 16M/g'  /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)max_execution_time =.*$/max_execution_time = 300/g' /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)max_input_time =.*$/max_input_time = 300/g' /usr/local/php/lib/php.ini  


在改为中文时图片出现乱码:
以下方法解决。
1.上传本地系统的C:\WINDOWS\Fonts\simhei.ttf文件到zabbixweb目录的zabbix/fonts下.
2.vi zabbix/include/defines.inc.php把所有的DejaVuSans替换成simhei

报错处理

报Fatal error: Call to undefined function bcscale()802的错误,那么对PHP进行重新编译。

p_w_picpathcreatefromstring() [<a href='function.p_w_picpathcreatefromstring'>function.p_w_picpathcreatefromstring</a>]: No PNG support in this PHP build [include/maps.inc.php:461]




:“<br /><b>Fatal error</b>:  Call to undefined function  p_w_picpathcreate() in <b>/usr/local/projects/ipcn/zabbix/include/classes/graph.inc.php</b> on line <b>1235</b><br />”。这里的p_w_picpathcreate()是gd库中用于创建图像的方法,因此就从gd库的状态查起。写了个phpinfo()页,发现加载的扩展模块配置文件里有gd.ini,但是却没有显示gd模块的信息。于是在php.ini里开启错误日志记录,重启了一下lighttpd,查看error.log,发现了错误提示如下:“PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20060613+lfs/gd.so’”。

一开始我还以为是缺少了gd.so,但是查看了下发现文件是存在的,可是php无论如何都无法成功加载。于是乎上网搜寻解决方法,最后在一个老外的debian论坛上找到了解决方案。其实很简单,具体操作如下:

首先执行

find / -name libgd.so*

找到了在“/usr/local/lib/”下有libgd.so、libgd.so.2和libgd.so.2.0.0三个文件。然后切换到这个目录下,将这个三个文件移除。当然了,为防万一最好新建个文件夹将它们挪过去,以后需要的话还能恢复。命令如下:

cd /usr/local/lib/

mkdir libgd.bak

mv libgd.so* libgd.bak/

然后再次重启lighttpd,php就成功加载了gd模块了。至于为什么这样我还不是很清楚,可能是在加载的时候会先从“/usr/local/lib”里去读取.so文件,然后造成与正常的gd.so的冲突吧。嗯这个还有待研究。


server zabbix_server stop
出现报libmysqlclient.so.15 错误
那就直接在/目录下面查找。然后把这个文件放置/lib下面。
再试着重启即可。