简易拓扑:
相关系统版本等内容:详见《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提供对内容的压缩传输编码支持,一般html,js,css等内容的站点,使用此参数功能会大大提高传输速冻,提升访问者的访问体验。再生产环境中,这是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等。
2,mysql数据库产品线第一个GA版本推出时间,至少超过10个月,在考虑使用到生产环境:
3,mysql数据库产品线上的最新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 #安装该函数库可以避免以下错误。
#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安装要依赖apache和mysql。
1,1检查apache及mysql的安装情况
检查apache和mysql是否安装。
#/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.conf第98行。
#此时的apache配合文件的路径为 /application/apache/conf
#增加如下内容:
ServerName 127.0.0.1:80
转换到311行即AddType 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将报下面的错误:
临时解决:
#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.ini将short_open_tag= Off ---->改成On
重启apache或nginx
总结:更改php短标签,也就是让php程序认识<? ?>里面的语句,这样的格式:<? php语句 ?> 而长标签就应该是<?php php语句?>如果你现在把php.ini将short_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 < images.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安装成功.