您的位置:首页 > 运维架构 > Apache

单独编译apache的rewrite模块

2008-11-28 15:48 169 查看
单独编译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.socp ./.libs/mod_rewrite.lai /usr/local/apache2/modules/mod_rewrite.lacp ./.libs/mod_rewrite.a /usr/local/apache2/modules/mod_rewrite.aranlib /usr/local/apache2/modules/mod_rewrite.achmod 644 /usr/local/apache2/modules/mod_rewrite.aPATH="$PATH:/sbin" ldconfig -n /usr/local/apache2/modules----------------------------------------------------------------------Libraries have been installed in: /usr/local/apache2/modulesIf you ever happen to want to link against installed librariesin a given directory, LIBDIR, you must either use libtool, andspecify 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 formore 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.soLoadModule php5_module modules/libphp5.soLoadModule rewrite_module modules/mod_rewrite.so重启apache生效把.htaccess文件恢复为这个文件名,访问正常显示页面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息