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/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的安装目录:(视个人安装情况而不同) [[email protected] ~]# cd /usr/local/apache2/conf
2)编辑httpd.conf文件,搜索"#ServerName",添加ServerName localhost:80
[[email protected] conf]# ls extra httpd.conf magic mime.types original [[email protected] 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 去查看 /--with-map这个选项可以指定它的工作模式,常用的有worker,prefork