ZABBIX企业监控实践(2):升级与配置Apache

乡下的树 2015年07月23日 388次浏览

前面我们完成了ZABBIX环境的安装,在实际项目中,出于安全漏洞或者性能优化方面的考虑,需要升级到最新版本。我们首先对Apache进行升级。

一、准备安装过程

如果已经安装的Apache是通过yum安装,升级前先删除旧版本:
备份httpd.conf配置文件

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

卸载旧版本Apache:

#service httpd stop
#yum remove -y httpd*

注:其实通过yum卸载时,会自动将配置文件httpd.conf备份为httpd.conf.rpmsave
如果已经安装Apache是通过是编译的,升级只需覆盖原来安装目录即可,可以查看上一次安装时的编译参数:

# cd /usr/local/apache/build/
# cat config.nice

image-1648377492508
安装依赖功能软件包
安装zlib:

# yum -y install zlib zlib-devel

安装pcre:
下载地址:http://sourceforge.net/projects/pcre/files/pcre/

# tar -zxvf pcre-8.37.tar.gz
# cd pcre-8.37
# ./configure
# make? && make install

如果没有安装pcre则编译安装Apache会提示以下错误:
image-1648377528221
升级apr:
下载地址:http://apr.apache.org/download.cgi
卸载原有apr

# rpm -e --nodeps apr
# rpm -e --nodeps apr-util

安装apr

# tar -zxvf apr-1.5.2.tar.gz 
# tar -zxvf apr-util-1.5.4.tar.gz 
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
# cd ../apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

如果没有升级apr,编译Apache会提示apr版本太低:
image-1648377569759

二、编译安装Apache

下载地址:http://httpd.apache.org/download.cgi
解压安装包

# tar -zxvf httpd-2.4.16.tar.gz

编译

# ./configure --prefix=/usr/local/apache --with-mpm=worker --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre --enable-rewrite --enable-so --enable-headers --enable-expires --enable-modules=most --enable-deflate

image-1648377592760
参数说明:
image-1648377621417
开始安装

# make && make install

image-1648377631973
注:如果Apache已经make过,最好make clean以保证configure指示的参数能够正确被编译.
安装完毕apache,查看安装后的目录,如下:

# ll /usr/local/apache/

image-1648377643889
目录文件说明:

  • bin:Apache编译后的文件,主要是程序命令
  • conf:Apache配置文件目录,
  • htdocs:站点目录
  • logs:Apache日志文件
  • modules:存放Apache目前使用的模块
  • manual:Apache操作手册目录

三、添加Apache服务

将Apache的启动脚本复制到/etc/rc.d/init.d目录下,如下:

#cp /usr/local/apache/bin/apachectl /etc/init.d/httpd

image-1648377684296
启动Apache:

/etc/init.d/httpd start

这里提示没有域名
image-1648377692982
解决方法:

# vi /usr/local/apache/conf/httpd.conf

修改# ServerName www.example.com:80
为 ServerName localhost:80

添加Apahce开机自启:
httpd启动脚本默认不支持chkconfig,需要进行修改

# vi /etc/init.d/httpd

修改以下内容

#!/bin/bash
#chkconfig:345 60 61
#description:Apache 

image-1648377725788
说明:
chkconfig: 345 60 61中的345是指脚本的运行级别;60是指脚本开机时的启动顺序号, 61是指系统关闭时,脚本的停止顺序号。
description: Apache关于脚本的描述。
添加Apache系统服务:

# chkconfig --add httpd

设置Apache开机启动:

# chkconfig --level 345 httpd on
# chkconfig |grep httpd

image-1648377743798
查看Apache服务端口是否监听状态

# netstat -lntp|grep 80
# lsof -i :80

image-1648377748986

四、配置Apache

修改Apache的配置文件
Apache的配置文件httpd.conf存放在/usr/local/apache/conf 目录下,如下:

# ll /usr/local/apache/conf/

image-1648377767006

# vi /usr/local/apache/conf/httpd.conf

设置网页后缀名index.php
image-1648377776474
设置域名,这里我们设置为localhost
image-1648377783008
修改网站根目录,由于前面我们Zabbix web的程序文件放在/var/www/html/zabbix下,为了方便统一管理,这里我们修改网站根目录为/var/www/html
image-1648377797092
设置Apache与php关联:(这里先不添加,下篇文章对PHP进行升级后再进行设置,否则无法启动httpd服务,并提示找不到libphp5.so模块)
加入以下内容:

LoadModule php5_module       modules/libphp5.so
AddType application/x-httpd-php .php .phtml .html
AddType application/x-httpd-php-source .phps

image-1648377809097
编辑完成保存退出,重启httpd服务让配置文件生效

# service httpd restart

复制全局命令

# cp /usr/local/apache/bin/httpd /usr/sbin/

查看升级后版本号是否正确:

# httpd –v

image-1648377826487

五、隐藏Apache版本号

为了安全起见,我们通常需要隐藏Apache版本号
未隐藏前显示的信息:

# curl -I 172.16.0.101:80

image-1648377852215
修改Apache的配置文件隐藏Apache版本号:

vi /usr/local/apache/conf/httpd.conf

分别搜索关键字ServerTokens和ServerSignature,如果没有则自行添加
修改:

ServerTokens OS 为 ServerTokens ProductOnly
ServerSignature On 为 ServerSignature Off

编辑完成保存退出,重启httpd服务让配置文件生效

# service httpd restart

测试结果如下,版本号与操作系统信息已经隐藏:

# curl -I 172.16.0.101:80

image-1648377880786

接下来会对PHP的升级。。。