单独编译apache的rewrite模块--收藏
2013-06-04 15:35
267 查看
标签:apacherewrite单独编译
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yahoon.blog.51cto.com/13184/115951单独编译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文件恢复为这个文件名,访问正常显示页面
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yahoon.blog.51cto.com/13184/115951单独编译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文件恢复为这个文件名,访问正常显示页面
相关文章推荐
- Linux apache 单独编译 动态加载模块
- Apache动态编译安装模块mod_rewrite
- apache下单独新增编译模块的方法
- apache安装/编译mod_rewrite模块
- Linux apache单独编译mod_rewrite.so
- 为apache单独编译mod_rewrite.so
- Apache动态编译安装模块mod_rewrite
- apache 编译 rewrite 模块
- linux下单独编译安装Apache rewrite_module
- 【转】【百度】 linux下单独编译安装Apache rewrite_module
- apache添加模块rewrite(伪静态页)(不重新编译)rewrite伪静态页
- 为apache单独编译mod_rewrite.so
- linux下单独编译安装Apache rewrite_module
- apache下单独新增编译模块的方法
- 如何单独编译Android源代码中的模块
- 安装编译Apache模块,配置反向代理
- Linux中编译apache服务器modules文件夹缺少模块(.so)的问题
- Apache rewrite模块安装及discuz伪静态配置
- CentOs开启Apache的rewrite_module模块,支持.htaccess
- android单独模块编译