zoukankan      html  css  js  c++  java
  • 升级apache

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

  • 相关阅读:
    HotRing: A Hotspot-Aware In-Memory Key-Value Store(FAST ’20)
    java中List 和 Set 的区别
    多线程编程(3)——synchronized原理以及使用
    从同步阻塞到异步非阻塞角度看网络编程
    多线程编程(2)—线程安全
    多线程编程(1)
    Maven项目下使用log4j
    LeetCode正则表达式匹配
    Java I/O模型及其底层原理
    这一年太快
  • 原文地址:https://www.cnblogs.com/jtlin/p/6289768.html
Copyright © 2011-2022 走看看