apache 编译重写模块

当Apache已编译但未包含重写模块时,可以通过apxs工具进行编译安装。进入Apache源码目录的modules/mappers子目录,运行`apxs -i -a -c ./mod_rewrite.c`命令。安装成功后,模块会被添加到`/usr/local/apache/modules`,并在httpd.conf中激活。重启Apache即可使重写模块生效。若模块已内置,将无法再次加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Locations of visitors to this page

统计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值