虽然本人接触最多的服务器软件是nginx,但是作为老大哥的apache依旧是不可轻视的一个软件,而且在这个世界上还有服务器的软件都依赖apache的环境,于是乎,安装apache是一个运维工程师的基本功。

Apache的安装


去 Apache的官方网站上下载安装文件,然后"拆包解压+./configure",但是可能会在./configure这步会提示 “configure: error: APR not found .  Please read the documentation"。


于是就要返回Apache网站再下载三个组件----apr、apr-util和pcre,下载命令分别是:

wget mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz     
wget mirrors.cnnic.cn/apache//apr/apr-util-1.5.4.tar.gz    
wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip 
#都wget之后,执行下一步
yum remove apr-util-devel apr apr-util-mysql apr-docs apr-devel apr-util apr-util-docs

 

先安装apr:

[root@localhost shuo]# tar -zxf apr-1.5.2.tar.gz  
[root@localhost shuo]# cd  apr-1.5.2  
[root@localhost apr-1.4.5]# ./configure --prefix=/usr/local/apr  
[root@localhost apr-1.4.5]# make && make install

再安装apr-util:

[root@localhost shuo]# tar -zxf apr-util-1.5.4.tar.gz   
[root@localhost shuo]# cd apr-util-1.5.4 
[root@localhost apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util  -with-apr=/usr/local/apr/bin/apr-1-config  

#用-with-apr来指定apr的路径
[root@localhost apr-util-1.3.12]# make && make install

最后安装pcre:

[root@localhost shuo]#unzip -o pcre-8.10.zip  
[root@localhost shuo]#cd pcre-8.10  
[root@localhost pcre-8.10]#./configure --prefix=/usr/local/pcre  
[root@localhost pcre-8.10]#make && make install


返回apache的拆包目录,使用这个一大句命令就可以成功configure了:

./configure --prefix=/usr/local/apache --enable-module=shared --with-apr=/usr/local/apr    --with-apr-util=/usr/local/apr-util/    --with-pcre=/usr/local/pcre


Apache的启动、重启和停止

进入apache的文件夹,然后cd到bin文件夹,使用#./apachectl -k start,就可以启动apache,但是如果出现了如下错误:

wKioL1cLdJex09RzAABG3FzCEug983.png

这个时候需要到apache的目录里进入到conf文件夹,#vim httpd.conf,然后使用:/ServerName 查找到ServerName localhost:80这句话,把这句话前面的#去掉,然后保存退出。重新返回bin文件夹下,使用#./apachectl -k start,这个时候就会看到进程已经启动了。

wKioL1cLdjWj9SaoAAAamzUCewI341.png

如果返回到桌面的话,使用浏览器打开http://localhost:80,就会看到“It works!“的字样。


若需要停止apache进程,就#./apachectl -k stop 或者直接"kill -9 +进程号",如果要重启apache就可以#./apachectl -k restart


上面说了可以使用kill -9 +pid号,但是这个方法只能kill掉主程序,比较科学的方法应该是#ps -ef |grep apache | grep -v grep | awk '{print $2}'|xargs kill -9.这个语句跟#./apachectl -k stop 的效果一样。


可以通过#netstat -antp|grep 80或者#lsof -i :80这两个语句来看80端口是否被apache进程监听。





参考文章:http://xtony.blog.51cto.com/3964396/836508/

参考文章:http://blog.sina.com.cn/s/blog_4d83777b0100pgal.html