简易拓扑:

zabbix编译环境安装_编译环境安装

相关系统版本等内容:详见《zabbix操作系统及软件版本》

,编译安装apache

请安照编译方式进行安装-à如下↓

apache 安装实战指南

#rpm -e --nodeps httpd*

#卸载已安装的http rpm安装包。如果是使用yum安装的,可以#yum -y remove httpd*来进行卸载。

-e 等同于 --erase表示移除意思。

-- nodeps英文解释don't do a dependencycheck .意思是不做软件间的依赖检查。

一,开始安装apache

[root@apache]#mkdir -p /home/oldboy/tools

#建立一个软件下载目录。

[root@apache]#cd /home/oldboy/tools

[root@apache]# wget http://apache.fayea.com/apache-mirror/httpd/httpd-2.2.23.tar.gz

#可进官网去下载,http://www.apache.org

http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.25.tar.gz

[root@apache]#yum install zlib-devel -y

#需要安装zlib函数库。

[root@apache]#./configure \

--prefix=/application/apache2.2.23\

--enable-deflate \

--enable-expires \

--enable-headers \

--enable-modules=most \

--enable-so \

--with-mpm=worker \

--enable-rewrite


#./configure后的参数说明:

#1.--prefix=/application/apache2.2.22表示指定apache安装路径为/application/apache2.2.22.如果不指定会安装在默认安装路径,默认安装路径为[/usr/local/apache2]

#2.--enable-deflate提供对内容的压缩传输编码支持,一般htmljscss等内容的站点,使用此参数功能会大大提高传输速冻,提升访问者的访问体验。再生产环境中,这是apache调优的一个重要选项之一。

#3.--enable-expires激活允许通过配置文件控制HTTP的“Expires:”和“Cache-Control:”头内容,即对网站图片,js,css等内容,提供在客户端浏览器缓存的设置,这apache调优的一个重要选项之一。

#4.--enable-headers提供允许对HTTP请求头的控制。

#5--with-mpm=worker选择apache mpm的模式为worker模式,因worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求,而系统资源的开销小于基于进程的mpm prefork。如果不指定此参数,默认的模式是prefork进程模式。这是apache调优的一个重要选项之一。

#6.--enable-rewrite 提供基于URL规则的重写功能,即根据已知URL地址,转换其它想要的URL地址。如前文讲解的伪静态功能就是这个模块实现的。这是apache在生产环境中必用的一个重要功能。

#7.--enable-so 激活apache服务的DSO支持,即在以后可以使用DSO的方式编译安装共享模块,这个模块本身不能以DSO方式编译。


[root@apache]#make

[root@apache]#make install


[root@apache]#ln -s /application/apache2.2.22 /application/apache

#重要步骤

[root@apache]#/application/apache2.2.22/bin/apachectl - l #查看安装后的模块。检查编译的情况。


二,apache启动检查和错误排查

[root@apache]# application/apache/bin/apachectl start

#启动apache服务。

[root@apache]#netstart -lnt #查看服务端口信息。

[root@apache]#lsof -i tcp:80 #检查端口对应的服务名称。

[root@apache]#ps -ef|grep http #查看服务进程。

如果不出现it works 的内容页面,请从下面原因一次排除。

1.iptables防火墙和selinux是否关闭。

1.#/etc/init.d/iptales stop

#这是关闭防火墙的命令。

如果在生产环境中,需要更改iptables文件,允许80端口访问

命令如下:

#iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#添加允许条目到iptables文件中去。

#/etc/init.d/iptables status

#查看防火墙启用状态。

2.关闭selinux

#setenforce 0 #这是临时关闭方法。

#vi /etc/selinux/config #更改selinux配置文件,将SELINUX=disabled 这是永久关闭方法。

2.通过命令查看httpd端口80是否存在:

#netstat -lnt |grep 80

3.查看是否有http进程存在。

#ps -ef|grep http

4.在服务器本地wget http://服务器地址测试

5.查看apache的错误日志看看是否有特殊异常。

#tail -100 /application/apache/logs/erro_log


,编译安装mysql

编译安装完成后,初始化时将数据库放置在/data下。à如下↓

lamp系列之-MYSQL单实例的安装配置

mysql 开源领域的关系型数据库产品。

社区GA版本为环境使用版本。

存储引擎:常用 myisam innodb引擎。

mysql5.0 -5.1 使用myisam引擎。生产环境当中使用innodb引擎比较多。

MySQL数据库生产环境如何选择合适的版本

1,分析本企业业务,需要使用到MYSQL那些基本功能和特性,特性重点方向研究为:mysql复制,分区表,plugin-innodb等。

2mysql数据库产品线第一个GA版本推出时间,至少超过10个月,在考虑使用到生产环境:

3mysql数据库产品线上的最新GA版本,一般向后退3-4个版本的GA版本数据库,作为可选的目标;


一,单实例mysql数据库的安装

1,建立mysql账号

#groupadd mysql

#useradd -s /sbin/nologin-g mysql -M mysql

-M表示不创建用户家目录。

建立mysql软件目录:

#mkdir -p/home/oldboy/tools

2,编译安装mysql

#yum install libtermcap-develncurses-devel -y #安装该函数库可以避免以下错误。

spacer.gif


#wget http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.62.tar.gz

#tar zxfmysql-5.1.62.tar.gz

[root@mysql mysql-5.1.62]#./configure \

--prefix=/usr/local/mysql\

--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock\

--localstatedir=/data/mysql/data\

--enable-assembler \

--enable-thread-safe-client\

--with-mysqld-user=mysql \

--with-big-tables \

--without-debug \

--with-pthread \

--enable-assembler \

--with-extra-charsets=complex\

--with-readline \

--with-ssl \

--with-embedded-server \

--enable-local-infile \

--with-plugins=partition,innobase\

--with-plugin-PLUGIN \

--with-mysqld-ldflags=-all-static\

--with-client-ldflags=-all-static


#make &&makeinstall

##可用./configure --help 来查看参数配置。

安装完mysql后需要执行以下步骤:

1,获取mysql配置文件;

2,创建mysql数据库文件。初始化数据库。

3,启动数据库;

4,配置mysql命令全局使用路径;

5,配置/etc/init.d/mysqld start 方式启动数据库;

6,配置开机自启动;

7,检查mysql数据库错误日志;

获取mysql配置文件

#ll support-files|grep*.cnf

#/bin/cpsupport-files/my-medium.conf /etc/my.cnf

#mysql 默认配置文件路径。

创建mysql数据库文件

#mkdir -p/usr/local/mysql/data

#chown -R mysql/usr/local/mysql #授权mysql用户访问mysql的安装目录

#/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql--datadir=/data/mysql/data --user=mysql #初始化mysql数据库文件

启动数据库

#/usr/local/mysql/bin/mysqld_safe& #启动mysql数据库。

#netstat -lnt |grep3306 #检查mysql数据库端口。

#mysql #默认登录mysql,不需要密码。

检查错误文件

#tail -10/usr/local/mysql/data/oldboy.err #默认mysql的错误日志,是放在data目录下以主机名命名的err日志。

配置mysql命令全局使用路径

1#echo 'exportPATH=$PATH:/usr/local/mysql/bin' >>/etc/profile #添加全局配置,这样以后输入mysql命令就能进入mysql

#. /etc/profile #使变量生效。

2#还有另外一个办法,就是把/usr/local/mysql/bin下面的命令拷贝到全局系统命令路径/usr/local/sbin下面也可以。

配置/etc/init.d/mysqld start 方式启动数据库

#cpsupport-files/mysql.server /etc/init.d/mysqld #拷贝mysql启动脚本到/etc/init.d/下。

#chmod 700/etc/init.d/mysqld #授权700权限,即脚本可执行。

#/etc/init.d/mysqldrestart #可用这种方式启动了..

配置开机自启动

#chkconfig --add mysqld

#chkconfig mysqld on

#chkconfig --list mysqld

也可以将mysql启动命令,加入到/etc/rc.local中。


三,编译安装php

请安照编译方式进行安装。à如下↓

lamp系列之PHP安装配置指南

1,安装PHP程序环境

php安装要依赖apachemysql

1,1检查apachemysql的安装情况

检查apachemysql是否安装。

#/application/apache/bin/apachectl-v #检查apache版本

#mysql -uroot -p'oldboy123' -e "selectversion();" #检查mysql的版本。

1,2检查安装php所需要的lib

#rpm -qa zlib libxml libjpeg freetype libpng gdcurl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devellibpng-devel gd-devel curl-devel

#如果没有安装这些库,可以使用以下方法:

#yum groupinstall "xsoftware development"

1,3安装libiconv

#cd /server/soft #自定义的软件下载目录

#wgethttp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

#tar zxflibiconv-1.14.tar.gz

#cd libiconv-1.14

#./configure--prefix=/usr/local/libiconv

#make &&makeinstall

##相关地址:http://www.gnu.org/software/libiconv/ (获得地址的方法:www.g.cn 输入download libiconv 使用谷歌进行搜索)

2,开始安装PHP

2.1获取php软件包

#cd /server/soft

#wgethttp://php.net/get/php-5.3.20.tar.gz/from/cn2.php.net/mirror

##当然也可以去网上下载http://php.net

2.2解压配置

#tar zxf php-5.3.20.tar.gz

#cd php-5.3.20

#./configure \

--prefix=/application/php5.3.20\

--with-apxs2=/application/apache2.2.25/bin/apxs\

--with-mysql=/usr/local/mysql\

--with-xmlrpc \

--with-openssl \

--with-zlib \

--with-freetype-dir \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-iconv=/usr/local/libiconv\

--enable-short-tags \

--enable-sockets \

--enable-zend-multibyte \

--enable-soap \

--enable-mbstring \

--enable-static \

--enable-gd-native-ttf \

--with-curl \

--with-xsl \

--enable-ftp \

--with-libxml-dir

--enable-sigchild \

--enable-pcntl \

--enable-bcmath


安装:

#make

#make install

配置:

#ln -s/application/php5.3.10 /application/php #创建软连接。

#ls -l /application/php

#ls php.ini-* #php的配置文件。

php.ini-development(开发测试版) php.ini-production(生产环境正式版)

#diff php.ini-development php.ini-production #可以比较以下。

#/bin/cpphp.ini-production /application/php/lib/php.ini #拷贝配置文件到php路径下面。

3,配置apache支持php

3.1修改apache配置文件

执行如下命令编辑apache的主配置文件httpd.conf

#cd/application/apache/conf/

#cp httpd.confhttpd.conf.oldboy.20130502 #养成操作前备份的习惯。

#vi/application/apache/conf/httpd.conf +98 #切换到httpd.conf98行。

#此时的apache配合文件的路径为 /application/apache/conf

#增加如下内容:

ServerName 127.0.0.1:80

转换到311AddType application/X-gizp.gz.tgz行的下一行加两行对php的解析支持内容:

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

AddType application/x-httpd-php-source .phps

修改damon用户为ett #也可以不修改。

User ett

Group ett

#如果不存在ett用户,一会保存好配置,需要执行 useradd ett -M-s /sbin/nologin建立ett

转到166行修改默认的首页文件,本例中增加一个index.php

DirectoryIndex index.phpindex.html

#完成后保存并比较修改结果:

#diff httpd.confhttpd.conf.oldboy.20130502

3.2检查并启动apache

检查apache配置文件的语法:

#/application/apache/bin/apachectl-t #检查语法正确性

重启apache服务:

#/application/apache/bin/apachectlgraceful #平滑启动apache

#特别说明:此处如果不关闭SELINUX将报下面的错误:

spacer.gif

临时解决:

#setenforce 0

永久解决:

#sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config

提示:两者同时使用,这样重启前后都是生效的。

3.3测试php环境

进入指定的默认站点目录后,编辑index.php添加:

关闭开启的虚拟主机包含的文件:

#sed -i 's#Includeconf/extra/httpd-vhosts.conf#\#Include conf/extra/httpd.vhosts.conf#g' /application/apache/conf/httpd.conf #注释掉虚拟主机配置

#grep httpd-vhosts.conf/application/apache/conf/httpd.conf #检查是否正确

#/application/apache/bin/apachectl-t #检查语法。

#/application/apache/bin/apachectlgraceful #重启apache

进入默认的apache站点目录

#cd/application/apache/htdocs/

#vi phpinfo.php

<?php

phpinfo();

?>

注意:

如果phpinfo的内容如下:

#vi phpinfo.php

<?

phpinfo();

?>

需要修改php.inishort_open_tag= Off ---->改成On

重启apachenginx

总结:更改php短标签,也就是让php程序认识<? ?>里面的语句,这样的格式:<? php语句 ?> 而长标签就应该是<?php php语句>如果你现在把php.inishort_open_tag = Off修改会后,并吧 <? phpinfo(); > 改成 <?php phpinfo(); ?>之后也是可以正常访问的。

3.4开启浏览器,输入IP地址进行访问。

测试完需要删掉。


4,测试php连接mysql是否正常

编辑test_mysql.php加入如下内容

<?php

//$link_id=mysql_connect('主机名','用户','密码')

$link_id=mysql_connect('localhost','root','oldboy123')or mysql_error();

//$link_id=mysql_connect('localhost','test','');

if($link_id){

echo "mysql successful byoldboy!";

} else{

echo mysql_error();

}

//这是php单行注释

/* 这是php多行注释 */

?>


linux php扩展安装gettext模块
# cd/server/soft/php-5.3.20
# cd ext/
# cd gettext/
[root@3350 gettext]#/application/php/bin/phpize

Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626

[root@3350 gettext]# ./configure --with-php-config=/applicaiton/php/bin/php-config --with-gettext
[root@3350 gettext]# make && make install
[root@3350 etc]# vim php.ini
添加如下内容
extension_dir = /application/php5.3.20/lib/php/extensions/no-debug-zts-20090626/
extension = gettext.so


[root@3350 etc]# /application/php/bin/apachectl restart


四:编译安装zabbix

具体步骤如下:


解压zabbix安装包

tarzxvfzabbix-2.0.8.tar.gz

增加系统用户zabbix

useraddzabbix-s/sbin/nologin


启动数据库:

/data/3306/mysqlstart

设置mysql登陆密码


登陆数据库,并创建zabbix数据库

mysql -uroot -p'autohome' -S /data/3306/mysql.sock

create database zabbix;

grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’;

exit

安装fping

http://download.chinaunix.net/down.php?id=41795&ResourceID=3222&site=1

tar zxf fping-3.0.tar

./configure

make&&makeinstall

/usr/local/sbin/fping#直接键入命令后运行

/usr/local/man/man8/fping.8#此处为man文件


yum install elfutils

yum install elfutils-devel


编译安装zabbix

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

make;make install

将数据文件导入数据库:

mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < schema.sql

mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < p_w_picpaths.sql

mysql -uroot -p'autohome' -S /data/3306/mysql.sock -A zabbix < data.sql

/etc/service文件中添加如下参数

zabbix-agent 10050/tcp # zabbix agent

zabbix-agent 10050/udp # zabbix agent

zabbix-trapper 10051/tcp # zabbix trapper

zabbix-trapper 10051/udp # zabbix trapper


[root@zabbix etc]# pwd

/usr/local/zabbix/etc

[root@zabbix etc]# vi zabbix_server.confDBName=zabbix
DBUser=zabbix
DBPassword=zabbix

FpingLocation=/usr/local/sbin/fping


修改Agentd配置文件,更改HOST NAME 为本机的hostname就好了

[root@zabbix etc]# pwd

/usr/local/zabbix/etc

vi zabbix_agent.conf


启动zabbix服务

# /usr/local/zabbix/sbin/zabbix_server

# /usr/local/zabbix/sbin/zabbix_agentd

[root@zabbix etc]# /usr/local/zabbix/sbin/zabbix_server

[root@zabbix etc]# /usr/local/zabbix/sbin/zabbix_agentd

[root@zabbix etc]# ps -ef|grep zabbix

zabbix 15773 1 014:14 ? 00:00:00/usr/local/zabbix/sbin/zabbix_server

zabbix 15789 1 014:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

zabbix 15790 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

zabbix 15791 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

zabbix 15792 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

zabbix 15793 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

zabbix 15794 15789 0 14:16 ? 00:00:00/usr/local/zabbix/sbin/zabbix_agentd

root 15796 5577 0 14:16 pts/1 00:00:00 grep zabbix

报错

19299:20130922:134700.123 [Z3001] connection to database 'zabbix' failed:[2002] Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock' (2)

解决

[root@zabbix mysql]# ln /usr/local/mysql/tmp/mysql.sock mysql.sock



更改web

cd /server/soft/zabbix-2.0.8/frontends/

cp -rf php/ /application/apache/htdocs/zabbix

cd /application/apache/htdocs/

chown -R zabbix:zabbix zabbix


重启apache服务


错误总结

zabbix 服务器端启动时,ps -ef|grep zabbix 显示,服务启动,但是端口没有打开。这个问题是zabbix没有正确连接后台数据库造成的。

检查:

检查zabbix日志:

LogFile=/tmp/zabbix_server.log


[root@zabbix data]# tail -f /tmp/zabbix_server.log

3675:20131008:134705.183 [Z3001]connection to database 'zabbix' failed: [2002] Can't connect to local MySQLserver through socket '/var/lib/mysql/mysql.sock' (111)

3675:20131008:134705.183 Databaseis down. Reconnecting in 10 seconds.

3675:20131008:134715.183 [Z3001]connection to database 'zabbix' failed: [2002] Can't connect to local MySQLserver through socket '/var/lib/mysql/mysql.sock' (111)

###由于我的数据库是编译安装的,所以zabbix默认查找的并不是我指定的sock

问题出在这里,由于连接不到数据库造成的

解决方法:

方法1,更改配置文件;

vi /usr/local/zabbix/etc/zabbix_server.conf


### Option: DBSocket

# Path to MySQL socket.

#

# Mandatory: no

# Default:

DBSocket=/usr/local/mysql/tmp/mysql.sock

##添加我们编译指定的sock 然后重启zabbix服务。

方法2,做指定数据库sock的软连接

ln -s /usr/local/mysql/tmp/mysql.sock /var/lib/mysql/mysql.sock

既然它回去找这个目录下的sock,那么就给它创建一个。

创建软连接后,服务自动就启动了。


至此zabbix--server安装成功.