1、apache官网下载地址: http://www.apache.org/dyn/closer.cgi 

2、进入到目录、下载源码包

cd /usr/local/src

 wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.31.tar.bz2 

3、解压:

tar -jxvf httpd-2.2.31.tar.bz2


4、解压完之后进入到源码包目录

cd httpd-2.2.31

如果第一步你没有文档参考可以去查看

vim INSTALL

5、配置编译参数:

./configure \
--prefix=/usr/local/apache2 \
--with-included-apr \
--enable-so \
--enable-deflate=shared \
--enable-expires=shared \
--enable-rewrite=shared \
--with-pcre

--prefix=/usr/local/apache2   指定安装目录

--with-included-apr \         版本或编译选项的可能性,apr是apache httpd这个软件要依赖的一个包,它可以支持httpd,它能够跨平台去运作,不管是linux还是Windows或是Unix或mic都能去运行httpd,它需要这么一个底层的包去支持它apr,它可以让我们去跨平台;

--with-pcre  正则相关的一个库

--enable-so 表示启用DSO

DSO是Dynamic Shared Objects(动态共享目标)的缩写,它提供了一种在运行时将特殊格式的代码在程序运行需要时,将需要的部分从外存调入内存执行的方法。Apache 支持动态共享模块,也支持静态模块,静态的话,会把需要的目标直接编译进apache的可执行文件中,相比较动态,虽然省去了加载共享模块的步骤,但是也加大了二进制执行文件的空间,变得臃肿。

--enable-deflate=shared 表示共享的方式编译deflate,后面的参数同理。


查看有没有错误

echo $?


如果这一步你出现了这样的错误:

error: mod_deflate has been requested but can not be built due to prerequisite failures

解决办法是:

yum install -y zlib-devel

为了避免在make的时候出现错误,所以最好是提前先安装好一些库文件:

yum install -y pcre pcre-devel apr apr-devel



6、如果没有错误

make
echo $?
make install


7、查看

ls /usr/local/apache2


8、启动Apache

/usr/local/apache2/bin/apachectl start

启动时出现错误提示:

httpd: Could not reliably determine the server's fully qualified domain name, us    ing localhost.localdomain for ServerName


解决办法:

1)进入apache的安装目录:(视个人安装情况而不同) [root@server ~]# cd /usr/local/apache2/conf
 
2)编辑httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80

[root@server conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@server conf]# vim httpd.conf
#ServerName www.example.com:80
ServerName localhost:80

3)再重新启动apache 即可。

/usr/local/apache2/bin/apachectl restart

9、查看进程

ps aux |grep httpd

10、查看端口

netstat -lnp



11、查看经常用到的选项

/usr/local/apache2/bin/apachectl -M

-M把模块列出来其中有一些静态的static,动态加载的shared,文件路径

ls /usr/local/apache2/modules

静态文件模块路径

ls /usr/local/apache2/bin/httpd


列出静态模块

/usr/local/apache2/bin/apachectl -l


查看配置文件有没有语法错误

/usr/local/apache2/bin/apachectl -t


配置文件路径

ls  /usr/local/apache2/conf/http.conf

可以重启,关闭,重新加载配置文件

/usr/local/apache2/bin/apachectl restart
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl graceful


12、Apache另一个知识点就是它的工作模式

/usr/local/apache2/bin/apachectl -l

其中有一个prefork.c可以在 ./configure --help |less 去查看 /--with-map这个选项可以指定它的工作模式,常用的有worker,prefork