linux 给没有Rewrite模块的Apache增加Rewrite模块

来源:互联网 发布:java域对象是什么意思 编辑:程序博客网 时间:2024/05/17 02:35
想给论坛添加rewrite 模块,以实现静态功能。
但是服务器并没有rewrite模块被编译,也没有rewrite的原文件。
怎么办呢,还真的是巧妇难为无米之炊。
从另一个服务器上直接拷贝一个过来,放到modules目录下,然后在httpd.conf里加载。
这个想法太简单了,不行。
把另外服务器上的源文件拷贝过来自己编译希望可以。
拷贝两个文件:mod_rewrite.c/mod_rewrite.h
开工了,但是也不确信行不行。相信我写这个,最终还是可以了。
网上的资料先看看,但是不能全信。这就是为什么我要写这篇文章了。如果都是千篇一律的话,直接网上拷贝一片贴上去算了。
就跟直接拷贝mod_rewirte.so到新的服务器一样,往往问题的解决方法不都是完全一样。

1、Apache安装rewrite模块的时候需要DBM支持,否则无法编译。使用rpm -qa gdbm 查询,如果没有,需要先下载并安装gdbm:
下载地址:ftp://ftp.gnu.org/gnu/gdbm/

安装步骤: 
./configure
make
make install
make install-compat (如果不执行此步,无法编译出ndbm.h头文件)


2:
/usr/local/apache2/bin/./apxs -c mod-rewrite.c -lgdbm
记得编译命令前的 ./ 这个太重要了。算然都可以运行,但是加与不加是不一样的。同时也决定了你能不能成功。
之后会生成几个文件,但是最重要的是 这个:mod_rewrite.o
3:
编译上一步生成的mod_rewrite.o文件,生成我们最终想要的mod_rewrite.so文件。
gcc -shared -o mod_rewrite.so mod_rewrite.o -lgdbm

4:
第四步了吧,马上就要打工告成了,当然我还中途犯错,差点放弃,都是完全信了网上别人的经验只谈,殊不知自己实事求是才是检验真理的唯一标准啊。
总之多试试。
安装rewrite模块:
/usr/local/apache2/bin/./apxs -i -A -n rewrite mod_rewrite.so
还是别忘了 ./  太容易被忽视了,我不得不强调,当然也许是我菜咯。问题是你可以看看网上专家们的高谈阔论,有几个写正确了的。
好了,这个命令之后,你的 httpd.conf 被自己修改和备份。但是要加载rewrite mod 你还是要麻烦一下,去改改,去掉LoadModule前面那个 #号。
5 :
重新启动你的apache.

Ok 了吧。不行的话,仔细看看你的每个步骤。特别是那些文件的路径。


转自:http://www.linuxidc.com/Linux/2008-01/10760.htm

原创粉丝点击