如果在apache发现没有mod_*,可能是当初编译apache的时候没有带上 --enable-*选项,或者Apache默认没有带上。我用最常用的mod_rewrite来做说明如何挂载一个模块。
重新编译mod_rewrite.so:
在apache的源码目录中寻找mod_rewrite.c文件(如果没有那么就去下载源码,然后cd进去)
find / -name mod_rewrite.c
/root/src/httpd-2.2.25/modules/mappers/mod_rewrite.c
编译:
cd /root/src/httpd-2.2.25/modules/mappers/
/Apache安装目录/bin/apxs -c mod_rewrite.c
/Apache安装目录/bin/apxs -i -a -n mod_rewrite mod_rewrite.la
如果没出错,在/Apache安装目录/modules/ 中就会有mod_rewrite.so了
并且在Apache的配置文件httpd.conf也会添加对应的LoadModule mod_rewrite modules/mod_rewrite.so
注意:
在命令执行后,apxs会在LoadModule中为rewrite加上"_module"以标名模块名称。如果你在启动apache时发现总是给出“不能定位API”之类的错误,那就是说明LoadModule后面的模块名的语法要根据您的apache版本加以改变。
我的apache 2.2.25 是:LoadModule rewrite_module modules/mod_rewrite.so