升级apache

摘要:
将Apache升级到最新版本一点都不复杂,但它不会停止现有Apache实例的运行,因此您应该小心。启动新Apache的命令位于/usr/local/apache2/bin目录中,名为apachectl。记得在修复后运行ldconfig,并让Apache找到它。下一步要做的是看看系统中还有什么依赖于旧的Apache,并将其更改为依赖于新的Apache。一般来说,它与Apache配置文件的mpm部分中ThreadsPerChild的值相同。

升级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。

***一点补充,如果使用了mod_jk,要注意了,

需要在worker.properties文件中,明确指定worker的connection_pool_size的值,改成多大?一般来说就是和Apache配置文件中的mpm段落中的ThreadsPerChild的数值一样即可。要不然,运行时会有问题的。在mod_jk.log中会出现类似这样的错误信息:

ajp_connection_tcp_get_message::jk_ajp_common.c (1350): (worker3) can't receive the response header message from tomcat, network problems or tomcat (172.16.7.16:8009) is down (errno=11)

参考,推荐看Apache及相关组件的官网资料,如果看中文的,这里推荐几个。

1. 编译安装apache http://www.cnblogs.com/alexqdh/archive/2012/11/20/2764810.html

2. apache2启动时共享库libpcre找不到 http://www.cnblogs.com/eastson/archive/2012/06/25/2561575.html

3. server下apache2.4.*虚拟主机配置Forbidden You don't have permission to access / on this server. http://www.cnblogs.com/unofficial/p/3931653.html

免责声明:文章转载自《升级apache》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用android studio发布android与flutter混合开发项目Java基础(十五):Java 中的内部类下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jmeter源码导入eclipse二次开发csv data set config实现从指定行开始读取)

一、Ant安装   1.官网去下载ant工具,下载地址:http://ant.apache.org/bindownload.cgi   2.下载后将ant进行解压,配置ant的环境变量,需要设置三个地方ant_home=d:/apache-ant-1.9.7path=%ANT_HOME%in;   classpath=%ANT_HOME%lib;   3....

centos+mono+nginx+jexus 搭建linux下c#运行环境测试

从零开始搭建Linux测试环境之dk+apache+jboss +mod_jk+openssl软件介绍1.JDK(Java DevelopmentKit)。Java开发工具包。大家都知道Java程序可以在绝大多数的机器上运行,不需要安装任何额外的软件,为什么我们要安装JDK呢?这是因为Java程序在开发过程中,需要将源代码转换为中间代码形式,也即class...

org.apache.commons.httpclient工具类

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.ap...

优秀开源项目的svn地址

很多优秀的开源项目已经提供SVN源码签出了,无论是解疑还是学习,都是一大幸福之事啊! Apache的SVN库,强烈推荐! http://svn.apache.org/repos/asf/  里面不但有Struts的源码,还有著名的Apache jakarta project 相当好的Web UI框架Tiles 现在很流行的项目管理工具Maven Ant、C...

Nginx 动静分离与负载均衡的实现

一、前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题。 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环境的优化,除了对源代码进行优化、SQL慢查询优化 、SQL创建索引等之外,我们还可以对环境架构进行优化与扩展。 因此,我们引入了 Nginx 对站点实现负载均...

禅道安装在不同系统下搭建步骤

一.Linux下禅道安装及运行zentao官网的几个网址 http://www.zentao.net/ http://www.zentao.net/article-view-79863.html 搭建环境需要下载两个文件 1)Linux下禅道项目管理软件源码下载 http://sourceforge.net/projects/zentao/files/5....