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. jquery下ie的margin-left ----bug 以及parseInt方法bug

    ie下使用jquery的方法css('margin-left')可能会出现'auto'----从而使结果不可计算,即便使用parseInt()方法也不行 因为parseInt()方法的bug是如果参数 ...

  2. 基于theano的深度卷积神经网络

    使用了两个卷积层.一个全连接层和一个softmax分类器. 在测试数据集上正确率可以达到99.22%. 代码参考了neural-networks-and-deep-learning #coding:u ...

  3. page cache 与 page buffer 转

    page cache 与 page buffer 标签: cachebuffer磁盘treelinux脚本 2012-05-07 20:47 2905人阅读 评论(0) 收藏 举报  分类: 内核编程 ...

  4. FineReader Mac如何设置参数让导出为DOCX/RTF/ODT格式

    Mac版ABBYY FineReader OCR文字识别软件识别文档之后,可以将已识别的文本保存到文件中,还可以通过电子邮件发送输出格式受FineReader支持的已识别文本,了解了ABBYY Fin ...

  5. 【转】用 PHP 内置函数 file_put_contents 写入文件

    PHP 内置函数 file_put_contents 用于写入文件. file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下: file_ ...

  6. java从零到变身爬虫大神(一)

    学习java3天有余,知道一些基本语法后 学习java爬虫,1天后开始出现明显效果 刚开始先从最简单的爬虫逻辑入手 爬虫最简单的解析面真的是这样 import org.jsoup.Jsoup; imp ...

  7. ExpandableListView方法详解

    正文 一.结构public interface ExpandableListAdapter 间接子类:BaseExpandableListAdapter,CursorTreeAdapter,Resou ...

  8. javascript中的继承实现

    javascript虽然是一门面向对象的语言,但是它的继承机制从一开始设计的时候就不同于传统的其他面向对象语言,是基于原型的继承机制,但是在这种机制下,继承依然有一些不同的实现方式. 方法一:类式继承 ...

  9. Kindle 实用技巧

    1.Kindle Mate:可以连接kindle导出生词本,笔记,注释,超级棒. 2.把PDF发送到Kindle的时候,邮件主题写convert,这样系统会自动把PDF转换成适合Kindle阅读的格式 ...

  10. apache 2.4 配置多个站点

    1.打开\Apache24\conf\httpd.conf 查找conf/extra/httpd-vhosts.conf  去掉前面的#号,一般是去掉的 2.在httpd.conf 中查找Requir ...