添加mod_rewrite.c模块

/etc/apache2/httpd.conf

加入

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

如果你的服务器apache还没有安装,那很简单,在编译apache时将mod_rewrite模块编译进去就可以,相关文档可以在 www.gbunix.com中找到。如果你的apache已经安装好了,现在只想编译出mod_rewrite.so模块,在apache中进行加载,下面我们就介绍这个方法。

以Solaris操作系统进行举例:

Ruby代码
  1. # PATH=/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin:$PATH   
  2. # export PATH   
  3. # which gcc   
  4. # which make   
  5.   
  6. # find ./ -name mod_rewrite.c //在apache的安装目录中寻找mod_rewrite.c文件   
  7. # cd PATH/to/mod_rewrite.c //进入包含mod_rewrite.c文件的目录   
  8. # apxs -c mod_rewrite.c //apxs请指定绝对路径,在你当前正在使用apache的bin目录里   
  9. # apxs -i -a -n mod_rewrite mod_rewrite.c   
  10.   
  11.   
  12. [color=indigo]以下是加GeoIP模块的install方法。借鉴:[/color]   
  13. To build mod_geoip as a dynamically loadable module:   
  14.   
  15. apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c   
  16.   
  17. -I/usr/local/include is where the GeoIP.h header file is installed   
  18. -L/usr/local/lib is where the libGeoIP library is located   
  19.   
  20. This will put the correct LoadModule statement.  

如果没有什么错误的话,应该在你的apache的modules目录中编译出一个mod_rewrite.so文件。

编辑httpd.conf文件,确认httpd.conf中已经包含mod_rewrite.so的加载语句,如下:

LoadModule rewrite_module modules/mod_rewrite.s

怎么才能向一个已安装的程序里面添加模块?

前提:你的apache是支持dso模式的,否则只能重新完全编译:
方法1:
安装一份全新全新的完全相同版本的apache到另外一个目录,记得打开你需要的模块,然后把安装之后的模板拷贝或者调用到现在的。

方法2:
apxs方法,这个很简单:http://w.yi.org/ftp/FAPM/apache/Apache2/zh/programs/apxs.html
apxs – APache扩展工具
apxs是一个为Apache超文本传输协议(HTTP)服务器编译安装扩展模块的工具, 用于编译一个或多个源程序或目标代码文件为动态共享对象, 使之可以用mod_so中的LoadModule指令 在运行时刻加载到Apache服务器中。

因此,要使用这个扩展机制,你的平台必须支持DSO特性, 而且Apache的httpd必须内建了mod_so模块。 apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测

$ httpd -l

该命令的输出列表中应该有mod_so模块。 如果所有这些条件均已具备, 则可以很容易地借助apxs安装你自己的DSO模块以扩展Apache服务器的功能:

Ruby代码 复制代码
  1.   
  2. $ apxs -i -a -c mod_foo.c   
  3. gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c   
  4. ld -Bshareable -o mod_foo.so mod_foo.o   
  5. cp mod_foo.so /path/to/apache/modules/mod_foo.so   
  6. chmod 755 /path/to/apache/modules/mod_foo.so   
  7. [activating module `foo’ in /path/to/apache/etc/httpd.conf]   
  8. $ apachectl restart   
  9. /path/to/apache/sbin/apachectl restart: httpd not running, trying to start   
  10. [Tue Mar 31 11:27:55 1998] [debug] mod_so.c(303): loaded module foo_module   
  11. /path/to/apache/sbin/apachectl restart: httpd started   
  12. $ _  

其中的参数files可以是任何C源程序文件(.c)或者目标代码文件(.o),甚至是一个库(.a)。 apxs工具会根据其后缀自动编译C源程序,或连接目标代码和库。 但是,使用预编译的目标代码时,必须保证它们是独立地址代码(position independent code [PIC]), 使之能被动态地加载。如果使用GCC编译,则应该使用-fpic参数;如果使用其他C编译器,则应该查阅其手册,为apxs寻找相应的编译参数。

有关Apache对DSO的支持的详细信息,可以阅读mod_so的文档, 或者直接阅读源程序src/modules/standard/mod_so.c。

9 thoughts on “添加mod_rewrite.c模块

  1. Pingback: Landscaping in Melissa TX

  2. Pingback: losarrierosmexicanrestaurant.com

  3. Pingback: havaianas conservation international sandal beige navy blue

  4. Pingback: walmart

  5. Pingback: porno

  6. Pingback: game binh xap xam online

  7. Pingback: cbdque

  8. Pingback: Replica Watches

  9. Pingback: i99casino

Leave a Reply