# tar zxvf http-2.2.22.tar.gz
# cd http-2.2.22
# ./configure \
  --prefix=/usr/local/apache2.2.22 \    设置安装的路径,apache默认是安装在/usr/loacl/apache2目录
  --enable-deflate \                    设置后能对内容进行压缩传输,从而减小带宽压力,提高传输速度,但是同时也会增大服务器CPU的压力
  --enable-expires \                    设置后能通过配置文件将服务器端的的内容,例如图片 js  css等缓存到用户本地从而减轻服务器带宽压力
  --enable-headers \                    文件头信息改写,压缩功能需要
  --enable-modules=most \               静态加载大部分模块,即直接把模块写入httpd.cnf中(--enable-modules-shared则是独立编译动态加载即DSO)
  --enable-so                           激活apache服务的dso功能,即以后可以DSO的方式编译安装共享模块,这个模块本身不能以dso方式编译
  --with-mpm=worker \                   线程模式占用的内存比较小  对应的还有prefork模式即进程模式
  --enable-rewrite                      提供URL规则的重写
#make && make install
ln -s  /usr/local/apache2.2.22  /usr/local/apache
 
/usr/local/apache/bin/apachectl -t  检查apache配置文件语法
/usr/local/apache/bin/apachectl -l  检查apache加载的模块
/usr/local/apache/bin/apachectl -M  检查apache静态加载的模块
/usr/local/apache/bin/apachectl start  启动apache
然后检查apache是否运行
netstat -lnt    检查端口
lsof -i tcp:80  检查80端口是否是apache用
ps -ef|grep httpd  查看httpd进程
此时apache已经启动成功
如果启动不成功可以查看以下:
1.iptables是否阻拦
可以关了防火墙 
/etc/init.d/iptables status 查看iptables状态
/etc/init.d/iptables stop
chkconfig iptables off
也可以配置防火墙容许80端口访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
2.关闭selinux
临时关闭  setenforce 0
永久关闭  cat /etc/selinux/config |grep SELINUX=disabled
3.可以查看错误日志
tail -200  /usr/local/apache/logs/error_log
 
网站默认目录
grep -i Documentroot /usr/local/apache/conf/http.conf
 
添加apache自启动
apache不会自动往/etc/init.d/下添加自己的httpd服务,所以需要手工拷贝
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
添加以后不能直接chkconfig添加服务,还需要修改/etc/init.d/httpd文件
vi /etc/init.d/httpd
在#!/bin/sh下面增加
# chkconfig: 2345 70 30
# description: Apache is a World Wide Web server. 
# processname: httpd
chkconfig: 2345 70 30 这一行,第一个数字 2345 表示让 apache 在 2345 这四个级别都自动运行;第二个数字 70 表示进程启动的优先级;第三个数字 30 表示进程停止的优先级。修改保存之后执行chkconfig --add httpd 就自动在各个级别的 rc*.d 中增加 httpd 的 link 。要查看 chkconfig 是否 reset 正确,通过命令 /sbin/chkconfig --list httpd 就可以查看当前 httpd service 被配置在哪几个运行级别自启动。
 
关于chkconfig: 2345 70 30 这一行中第二和第三个数字设置时需要注意的地方:
1、优先级的数字越大,表示越靠后,也就是越不优先;
2、一般把数据库服务器的启动优先级高于依赖于该数据库的应用;
3、不依赖其它服务的服务优先启动,依赖于其它服务的服务要后启动;
4、停止时的优先级顺序刚好同启动时相反,也就是说依赖于其它服务的服务要先关闭;被别的服务依赖的服务要后关闭。