最近,需要在已经编译好的Apache上以动态方式加载rewrite模块。
机器上的apache的版本是2.0.59,下载源码包解压后的目录为 /root/httpd-2.0.59 文中简称为“源码目录”
apache安装目录 /var/www/bin 文中简称为“目标目录”
步骤:
1、Apache安装rewrite模块的时候需要DBM支持,否则无法编译,所以首先要安装一个GDBM
下载地址:ftp://ftp.gnu.org/gnu/gdbm/
安装步骤:
进入安装目录,
./configure
make
make install
make install-compat (最后行也要执行。否则无法编译出ndbm.h头文件)
如果您不能确定服务器上是否已经装有DBM,那么可以rpm -qa gdbm查询一下。否则这步可以跳过。
2、使用如下指令编译出so文件:
/var/www/bin/apxs -c mod_rewrite.c -lgdbm
即可得到mod_rewrite.so文件。
备注:"-lgdbm"是用为说明在编译mod_rewrite.c时要把gdbm链接进来。这样在第6步启动apache时就不会报出"dbm fetch"的错误了。
3、现在让apache的apxs来自动向http.conf配置文件中加入LoadModule语句并将mod_rewrite.so文件拷贝到对应目录
/var/www/bin/apxs -i -A -n rewrite /root/httpd-2.0.59/modules/mappers/.libs/mod_rewrite.so
如果不知道mod_rewrite.so在哪儿,可以查一下:find / -name mod_rewrite.so
4、停止apache
apache/bin/apachectl stop
5、运行配置文件检查命令
apache/bin/apachectl configtest
如显示Syntax OK,则表示整个操作成功。
6、启动apache
/var/www/bin/apachectl start
全文结束。
