开发者社区> 科技小先锋> 正文

单独编译apache的rewrite模块

简介:
+关注继续查看
单独编译apache的rewrite模块

装好了一个基于Modx网站

在IE里面访问时,出来的页面是apache内部错误,请联系管理员

查看apache错误日志里面内容如下

[Tue Nov 25 23:46:41 2008] [alert] var/www/xxx/.htaccess: Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration

根据.htaccess的内容,需要apache支持rewrite模块

我先把.htaccess文件重命名(即不启用rewrite模块),发现是可以访问页面的,所以是我的apache编译时没有rewrite模块引起的问题

现在单独编译这个模块

进入apache的源码目录

# cd httpd-2.0.59

# cd modules

#cd mappers/

# ls 

会列出很多文件,其中mod_rewrite.c  这个就是rewrite模块的源码文件

# /usr/local/apache2/bin/apxs -i -a -c ./mod_rewrite.c

输出如下

/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic  -DAP_HAVE_DESIGNATED_INITIALIZER -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include  -I/usr/local/apache2/include   -I/usr/local/apache2/include   -c -o ./mod_rewrite.lo ./mod_rewrite.c && touch ./mod_rewrite.slo

/usr/local/apache2/build/libtool --silent --mode=link gcc -o ./mod_rewrite.la  -rpath /usr/local/apache2/modules -module -avoid-version    ./mod_rewrite.lo

/usr/local/apache2/build/instdso.sh SH_LIBTOOL='/usr/local/apache2/build/libtool' ./mod_rewrite.la /usr/local/apache2/modules

/usr/local/apache2/build/libtool --mode=install cp ./mod_rewrite.la /usr/local/apache2/modules/

cp ./.libs/mod_rewrite.so /usr/local/apache2/modules/mod_rewrite.so

cp ./.libs/mod_rewrite.lai /usr/local/apache2/modules/mod_rewrite.la

cp ./.libs/mod_rewrite.a /usr/local/apache2/modules/mod_rewrite.a

ranlib /usr/local/apache2/modules/mod_rewrite.a

chmod 644 /usr/local/apache2/modules/mod_rewrite.a

PATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules

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

Libraries have been installed in:

   /usr/local/apache2/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/apache2/modules/mod_rewrite.so

[activating module `rewrite' in /usr/local/apache2/conf/httpd.conf]

由输出可以看到rewrite模块已经在httpd.conf中激活了,查看确认

# vi /usr/local/apache2/conf/httpd.conf

可以看到

# LoadModule foo_module modules/mod_foo.so

LoadModule php5_module        modules/libphp5.so

LoadModule rewrite_module     modules/mod_rewrite.so

重启apache生效

把.htaccess文件恢复为这个文件名,访问正常显示页面



本文转自yahoon 51CTO博客,原文链接:http://blog.51cto.com/yahoon/115951,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【墨菲安全实验室】Apache IoTDB grafana-connector模块SQL注入分析
【墨菲安全实验室】Apache IoTDB grafana-connector模块SQL注入分析
134 0
mod_sflow 轻量、实时的流量分析 Apache 模块
sFlow 是一种网络流量分析的协议。通过流量分析,可以实现更有效地监控网络的状况。例如,最近爆出的OpenSSL心脏出血漏洞,由于是通过 OpenSSL 漏洞直接读取内存信息,而不是直接入侵系统,因此服务器日志上不会有相关的记录,使用常规手段难以难以追查。但是,由于来回通信包的长度等特征非常明显,因此利用sFlow之类的技术分析流量特征,就可以追溯攻击流量和攻击历史。特别是,这次的 OpenSSL 漏洞可以无限制反复利用,这既方便了攻击者,不用依靠精妙的技巧来操控读取地址,反复读取即可获得大量内存片段,另一方面也使攻击行为更容易被侦测到。
299 0
谈Apache OFbiz 会员模块表结构设计
数据库表的结构设计可谓是ofbiz除技术框架之外,另一个非常值得学习的方向。这篇文章我们来谈谈ofbiz对电子商务会员表的设计。 PARTY ofbiz对人、团体进行了抽象,称之为party,翻译为中文称之为“会员”(但我觉得抛开领域,如果你也有相关的设计需求,在其他领域可能称之为团体更合适)。
1674 0
+关注
科技小先锋
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
Apache NiFi Crash Course Intro
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像