apache 编译重写模块

Apache编译重写模块

让apache支持重写,

如果已经编译好了apache,只有重写模块没有编译进来,

可以进行如下操作到apache的源码目录,

cd httpd-2.2.15/modules/mappers

运行如下命令

/usr/local/apache/bin/apxs -i -a -c ./mod_rewrite.c

如果安装成功,一会出现如下信息

Libraries have been installed in: /usr/local/apache/modules

If you ever happen to want to link against installed libraries in a given directory,

LIBDIR,

you must either use libtool, and specify the full pathname of the library, or use the

`-LLIBDIR' flag during linking and do at least one of the following:

- add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,

--rpath -Wl,LIBDIR' linker flag - have your system administrator

 add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages.

----------------------------------------------------------------------

chmod 755 /usr/local/apache/modules/mod_rewrite.so [activating module `rewrite' in /usr/local/apache/conf/httpd.conf]

上面说的很明白,这个模块已经安装到了

/usr/local/apache/modules,

 httpd.conf文件已经激活了重写模块此时重启apache重写模块就生效了。

如果重启出现如下错误

httpd: Syntax error on line 54 of /usr/local/apache/conf/httpd.conf: module rewrite_module is built-in and can't be loaded

这上面很清楚的告诉你。

此模块已经是内建的了,没有必要在加此模块。

也可以用httpd –l 查看一下,看有哪些模块已经编译进来了。

httpd –l是内建模块。

apxs是何许人也

apxs是一个为Apache超文本传输协议(HTTP)服务器编译安装扩展模块的工具,

用于编译一个或多个源程序或目标代码文件为动态共享对象,

使之可以用mod_so中的LoadModule指令 在运行时刻加载到Apache服务器中。因此,要使用这个扩展机制,你的平台必须支持DSO特性,

而且Apache的httpd必须内建了mod_so模块。

apxs工具能自动探测是否具备这样的条件,你也可以自己用这个命令手动探测如 ./httpd –l Compiled in modules: core.c mod_userdir.c mod_alias.c mod_rewrite.c mod_so.c 、、、、、、、、

apxs参数说明

-i 此选项表示需要执行安装操作, 以安装一个或多个动态共享对象到服务器的modules目录中。

-a 此选项自动在httpd.conf文件中增加一个LoadModule行,以激活此模块,或者,如果此行已经存在,则启用之

-c 此选项表示需要执行编译操作。 它首先会编译C源程序(.c)files为对应的目标代码文件(.o), 然后,连接这些目标代码和files中其余的目标代码文件(.o and .a), 以生成动态共享对象dsofile。

如果没有指定-o选项, 则此输出文件名由files中的第一个文件名推测得到, 所以,缺省时,它一般会是mod_name.so. 如编译刚才的重写模块 /usr/local/apache/bin/apxs -i -a -c ./mod_rewrite.c

apache 编译重写模块_第1张图片

你可能感兴趣的:(apache 编译重写模块)