前面我们完成了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
安装依赖功能软件包
安装zlib:
# yum -y install zlib zlib-devel
安装pcre: # tar -zxvf pcre-8.37.tar.gz # cd pcre-8.37 # ./configure # make && make install 如果没有安装pcre则编译安装Apache会提示以下错误: 升级apr: 卸载原有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版本太低: 二、编译安装Apache 解压安装包 # 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 参数说明: 参数 | | prefix
| Apache安装目录
| with-mpm
| 指定工作模式,默认的模式是prefork进程模式。让apache以worker方式运行, worker模式原理是更多的使用线程来处理请求,所以可以处理更多的并发请求。
| with-apr
| 指定apr的目录
| with-apr-util
| 指定apr-util的目录
| with-pcre
| 支持perl的正则表达式
| enable-rewrite
| 支持URL重写
| enable-so
| 启用动态模块加载
| enable-headers
| 提供允许对HTTP请求头的控制
| enable-expires
| 支持 HTTP 控制
| enable-modules=most
| 支持大多数模块
| enable-deflate
| 支持网页压缩
|
开始安装 # make && make install 注:如果Apache已经make过,最好make clean以保证configure指示的参数能够正确被编译. 安装完毕apache,查看安装后的目录,如下: # ll /usr/local/apache/ 目录文件说明: 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 启动Apache: /etc/init.d/httpd start 这里提示没有域名 解决方法:
# vi /usr/local/apache/conf/httpd.conf 为 ServerName localhost:80
添加Apahce开机自启: httpd启动脚本默认不支持chkconfig,需要进行修改 # vi /etc/init.d/httpd 修改以下内容 #!/bin/bash #chkconfig:345 60 61 #description:Apache 说明: chkconfig: 345 60 61中的345是指脚本的运行级别;60是指脚本开机时的启动顺序号, 61是指系统关闭时,脚本的停止顺序号。 description: Apache关于脚本的描述。 添加Apache系统服务: # chkconfig --add httpd 设置Apache开机启动: # chkconfig --level 345 httpd on # chkconfig |grep httpd 查看Apache服务端口是否监听状态 # netstat -lntp|grep 80 # lsof -i :80 四、配置Apache 修改Apache的配置文件 Apache的配置文件httpd.conf存放在/usr/local/apache/conf 目录下,如下: # ll /usr/local/apache/conf/ # vi /usr/local/apache/conf/httpd.conf 设置网页后缀名index.php 设置域名,这里我们设置为localhost 修改网站根目录,由于前面我们Zabbix web的程序文件放在/var/www/html/zabbix下,为了方便统一管理,这里我们修改网站根目录为/var/www/html 设置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 编辑完成保存退出,重启httpd服务让配置文件生效 # service httpd restart 复制全局命令 # cp /usr/local/apache/bin/httpd /usr/sbin/ 查看升级后版本号是否正确: # httpd v
五、隐藏Apache版本号 为了安全起见,我们通常需要隐藏Apache版本号 未隐藏前显示的信息: # curl -I 172.16.0.101:80 修改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 接下来会对PHP的升级。。。
|