转:http://blog.csdn.net/baichong/article/details/4274258
因项目需要,用到rewrite,而原来的apache2.2.4在编译的时候没有加载,而apache又不好重新编译,于是在网搜集了一下资料,结合我自己机器的环境,实现了rewrite。
步骤:
1、Apache安装rewrite模块的时候需要DBM支持,否则无法编译,所以首先要安装一个GDBM
下载地址:ftp://ftp.gnu.org/gnu/gdbm/
安装步骤:
./configure
make
make install
2、
find / -name mod_rewrite.c 找到mod_rewrite.c文件地址
/usr/local/apache2/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文件拷贝到/usr/local/apache2/lib目录
/usr/local/apache2/bin/apxs -i -A -n rewrite 编译出来的mod_rewrite.so地址
备注:命令中的rewrite参数是告诉apxs命令mod_rewrite.so文件中的模块名。在命令执行后,apxs会在LoadModule 中为 rewrite加上"_module"以标名模块名称。如果你在启动apache时发现总是给出“不能定位API”之类的错误,那就是说明 LoadModule后面的模块名的语法要根据您的apache版本加以改变。
4、查找httpd.conf里面的AllowOverride None,改名AllowOverride All
5、停止apache
apache/bin/apachectl stop
6、运行配置文件检查命令
apache/bin/apachectl configtest
如显示Syntax OK,则表示整个操作成功。那么可以到第6步。否则根据提示信息进行调试。但只要按照此文所说进行操作是不会出错的。
7、启动apache
apache/bin/apachectl start