升级Apache到最新版本,本来并不复杂,但是因为涉及到不能停止现有的Apache实例的运行,因此要小心翼翼的做。
大致分成三步:
编译新的Apache,
配置新的Apache,
替换旧的Apache。
下面慢慢道来:
1.编译新的Apache
需要到官网下载最新的src,需要什么依赖包,请参照下载的源码包里面的README和INSTALL。
如果需要安装apr包,请到官网下载,并拷贝到正确的位置。然后就是:
./configure
make
make install
默认安装到/usr/local/apache2 ,可以在configure 参数中指定安装位置。
2.配置新的Apache
如果安装到了上述位置,则配置文件在/usr/local/apache2/conf 中,此时可以把在用的Apache的配置文件拷贝过来,
如果能把个性化的配置放到自己创建的conf文件中,比如可以叫做httpd.local.conf 文件,这样可以方便以后升级时,修改配置。
如果需要什么组件,在这个时候装上。如果需要启用哪些module,在这个时候启用。
修改好了以后,可以进行测试,测试之前,记得修改下监听端口号,不要使用默认的80了。
测试中,会发现漏了的配置和错误的配置。通过后,可以把端口号改回去。
启动新Apache的命令在/usr/local/apache2/bin 目录下,叫做apachectl。
如果打算把新的Apache作为服务启动,可以把这个文件拷贝到/etc/init.d 下面,再把它加入到系统服务中,以SuSE为例,要这样,
cp apachectl /etc/init.d/apache2.4
chkconfig -a apache2.4
为了服务看起来漂亮,可以把旧的apache启动文件的开头部分复制过来,就是 ###BEGIN INIT INFO 那一段。
另外,测试中,可能会发现缺少libpcre或者tomcat-connector等等问题,直接逐一解决就行啦。
比如,可以通过 ldd httpd 来查看是否缺少动/静态链接库文件。这里要做的就是缺啥补啥。记得补好后,运行一下ldconfig,让Apache找到。
然后,检查一下Apache所有的配置文件,看看是否还有参照旧版本Apache路径的配置文件,如果有的话,都用新的路径替换掉。
3.替换旧的Apache
这是最后的步骤,要很仔细的,先停掉旧的Apache,例如
service apache2 stop
然后,启动新的apache,例如
service apache2.4 start
确认业务OK后,去掉旧的apache服务,例如
chkconfig -d apache2
至此,已经运行起来新的Apache实例。后续要做的就是,看看系统里面还有哪些依赖于旧的Apache的地方,都修改成依赖新的Apache。