最近,想使用apache的mod_status来查看一下apache的服务器状态,就自己安装了一下mod_status,以前觉得好像很难的东西其实很简单。
第一步, 去http://httpd.apache.org/下载最新的apache服务器
第二步,将下载的httpd-2.2.17.tar.gz解压,如:~/tmp$ tar xvf httpd-2.2.17.tar.gz
第三步,进入解压后的httpd-2.2.17目录,通过configure脚本配置安装文件,这里可以指名你的apache安装在什么地方、你需要加载那些模块等信息,具体参数可以查看帮助文档:http://www.phpchina.com/manual/apache/install.html。
这里我将我的apache安装在我用户目录的apache2.2.17下,并且加载mod_status模块,如下:
~/tmp ./configure --prefix=/home/dream-victor/apache2.2.17 --enable-status=shared
--prefix:指定路径;
--enable-status=shared:指定了要加载那个mod,这里使用--enable-XXX=shared,XXX就是mod_XXX去掉mod_后的值
第四步,编译,通过make命令,如:~/tmp make
第五步,安装,通过make install安装,install时对于apache已经配置好的文件是不会有更改的,如你在httpd.conf中配置了一个LoadModule XXX,这个配置是不会因为install而被覆盖的。
当安装完成后,你能看到在~/apache2.2.17/modules下能看到mod_status.so文件。
第六步,修改httpd.conf文件,恢复Include conf/extra/httpd-info.conf这条注释掉的语句,引入httpd-info.conf配置
第七步,修改httpd-info.conf文件,
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from nothing
Allow from all
</Location>
ExtendedStatus On
无访问限制,当然也可以通过上面的代码来设置访问限制,具体可以参看http://www.phpchina.com/manual/apache/install.html里的文档
完毕,可以启动服务器了,通过http://localhost/server-status来查看吞吐率等服务器状态
我们可以通过上述方法安装mod_info,但是会报出一个错误,
httpd: Syntax error on line 54 of /home/dream-victor/apache2.2.17/conf/httpd.conf: module status_module is built-in and can't be loaded
可以将httpd.conf文件中的LoadModule status_module modules/mod_status.so注释掉,即可启动服务。至于为什么,我使用 ./httpd -l查看mod_status.c已经是内建的module可能是因为我一开始安装时就引进了这个module的原因,因为没有看到info的信息,info是我后来安装的,暂时先这样理解。