From:http://www.onepx.com/centos-apache-246.html

  之前服务器 Apache 版本一直是 2.2.x,鉴于 Centos 更新软件的惰性,我看直到 2014 年结束,apache 2.4 都不一定会出现在 Centos 中,我是不打算等了,编译安装吧。

升级前自行啃文档:Upgrading to 2.4 from 2.2。简单的说,如果沿用之前 2.2.x 的配置,Apache将无法启动。

Centos 编译安装 Apache 2.4 准备:

	yum groupinstall "Development tools"

之前服务器是 yum install httpd 安装的 Apache,所以可能解决了部分依赖关系,在我编译安装的过程中,只需要再格外 yum 两个 devel 包:

	yum install zlib-devel pcre-devel

从官方下载:

	wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.6.tar.gz
wget http://mirror.esocc.com/apache//apr/apr-1.4.8.tar.gz
wget http://mirror.esocc.com/apache//apr/apr-util-1.5.2.tar.gz

解压缩:

	tar -xvf httpd-2.4.6.tar.gz
tar -xvf apr-1.4.8.tar.gz
tar -xvf apr-util-1.5.2.tar.gz

一点文件操作:

	mv apr-1.4.8 httpd-2.4.6/srclib/apr
mv apr-util-1.5.2 httpd-2.4.6/srclib/apr-util
cd httpd-2.4.4

编译命令:

	./configure --with-included-apr --enable-nonportable-atomics=yes --with-z

出奇的简单,因为默认就有 --enable-mods-shared=most ,模块化安装,以后自行到 httpd.conf 中决定是否开启模块,所以什么 --enable-deflate --enable-rewrite --enable-blablabla 等就完全不必要了。

默认安装的是 event mpm,如果要用 worker ,就需要 --with-mpm=worker,或者干脆 --enable-mpms-shared=all,这样event、worker、prefork就会以模块化的方式安装,要用哪个就在 httpd.conf 里配置就好了。

编译完成后:

	make
make install

安装完毕后, 所有的东西都在 /usr/local/apache2 这个目录下,最重要的当属 conf/httpd.conf ,自行配置吧。

加载模块上,我尽可能的做了精简,仅开启如下:

	必须:
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_module modules/mod_mime.so
	设置超时:
LoadModule reqtimeout_module modules/mod_reqtimeout.so
	以下三个都是为了配合 Google mod_pagespeed 才开启,不用可不开:
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
	Apache 日志:
LoadModule log_config_module modules/mod_log_config.so
	指定 Apache 用户和组:
LoadModule unixd_module modules/mod_unixd.so
	phpMyAdmin 要用:
LoadModule alias_module modules/mod_alias.so
	wordpress, joomla 要用:
LoadModule rewrite_module modules/mod_rewrite.so

还有很多配置文件在 /usr/local/apache2/conf/extra 下面,在 httpd.conf 中可以选择是否加载,我加载的部分有:

	配置 timeout, keepalive 的
httpd-default.conf
	配置 apache mpm 的
httpd-mpm.conf
这个很重要,性能优化基本上就靠这个文件了
	配置网站目录的
httpd-userdir.conf
	配置虚拟主机的
httpd-vhosts.conf

确定所有配置弄好后,就可以删除服务器上以前的 apache 了,至少我就是这么干的...:

	service httpd stop
yum remove httpd

把新编译安装的 Apache 2.4.6 拷贝到位:

	cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

编辑 /etc/init.d/httpd 文件,在首行 #!/bin/sh 下面加入两行:

	# chkconfig: 35 85 15
# description: Activates/Deactivates Apache 2.4.6

将 Apache 加入开机自动启动:

	chkconfig --add httpd
chkconfig httpd on

最后一步,启动编译好的 Apache 2.4.6:

	service httpd start

Done.

Apache 是搞定了,但是之前通过 remi-test 源 yum 安装的 php 5.5 就不能用了,因为它依赖 httpd 包,卸载的时候一起卸掉了,编译 php 的事情,下篇再说。

简单 ab 测试过 apache 2.2 和 apache 2.4 之间的性能差异:

  • 静态内容,2.4完胜;
  • 动态内容,apache 2.4 和 2.2 之间没啥太大区别...

CentOS安装apache2(转载)的更多相关文章

  1. centos 安装 apache2.4

    1. centos 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel gd gd-devel zlib zlib-deve ...

  2. CentOS安装Apache-2.4.10+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...

  3. CentOS安装Apache-2.4.25+安全配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Nginx之前,请确保已经使用yum安装了各基础组件,并且配置了www用户和用户组,具体见<CentOS ...

  4. Centos安装 Apache2.4提示 APR not found的解决办法

    在安装apache2.2.22版本的时候没有任何问题,可直接使用命令编译安装. 但是,在apache 2.4.12版本,./configure 进行配置时, 提示 configure: error: ...

  5. Centos安装Nginx(转载)

    一.概述 项目总使用到Nginx的代理转发,学习和整理内容如下,由于是整理所以参考博客大牛的内容,有很多雷同之处,还望见谅(非抄袭对待) 二.Nginx依赖包的安装 yum install gcc y ...

  6. 【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  7. 【推荐】CentOS安装PHP-5.6.4+扩展安装+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 前段时间PHP官方发布了一个重要的安全升级公告,修复了两个unserialize函数的严重漏洞,目前受影响的版本有: ...

  8. 【推荐】CentOS安装Subversion-1.8.17+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  9. CentOS下源码安装Apache2.4+PHP5.4+MySQL5.5

    一.准备(把所有的源文件放在‘/home/yuanjun’目录下) apr http://mirror.bjtu.edu.cn/apache/apr/apr-1.4.6.tar.gz apr-util ...

随机推荐

  1. Git-rebase与merge小结

    git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 ---------------------- ...

  2. 在CentOS上安装Python

    首先我们需要在服务器上安装一个比较新的 Python,CentOS 5.8 默认装的 Python 是 2.4.3. [root@nowamagic ~]# python -V Python 我们需要 ...

  3. Linux 数据流重定向

    1.三种数据流重定向1)标准输入(stdin):代码为0,使用0<或0<<,其中代码0可以省略2)标准输出(stdout):代码为1,使用1>或1>>,其中代码1可 ...

  4. 在VS 2015 RTM 版中 提示 未能正确加载 NuGetPackage包

      在原来的项目中曾经启用了Nuget在编译时还原包功能.这样就会在 *.sln在平行目录生成 一个.Nuget文件夹, 删除了它,就好了.   我分析原因是, VS 2015 使用的是 NugetP ...

  5. 数据恢复-extundelete

    http://extundelete.sourceforge.net/options.html 误删除/usr/share目录因此考虑恢复目录过程如下:1.选用extundelete软件来进行恢复,源 ...

  6. android 添加依赖的库文件

    Notpad: 2016-3-16: 1.android 添加依赖的库文件 右键自己的项目 -> properties ->android ->在Library处点击add -> ...

  7. 09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例

    根据08_android入门_android-async-http开源项目介绍及使用方法的介绍,我们通过最常见的登陆案例进行介绍android-async-http开源项目中有关类的使用.希望对你学习 ...

  8. CentOS 系统配置完jdk,tomcat mysql,nginx 项目发布步骤

    1.启动项目之前,一定要先启动nginx服务 重启nginx服务的命令:./nginx -s reload 2.然后启动三个tomcat的服务 3.如果只能进入tomcat,不能进入项目:把tomca ...

  9. 常见的java 错误--转

    Java常见错误列表: 找不到符号(symbol) 类X是public的,应该被声明在名为X.java的文件中 缺失类.接口或枚举类型 缺失X 缺失标识符 非法的表达式开头 类型不兼容 非法的方法声明 ...

  10. Shell学习:sed命令

    http://blog.sina.com.cn/s/blog_a56ef5490101cn58.html sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行 ...