cmfr 发表于 2013-11-7 09:06:08

apache 模块的启用及追加编译 (centos &ubuntu )

1.首先查看apache ,安装的时候都编译了那些模块
httpd -M
或者/etc/httpd/modules
在ubuntu 中可以在/etc/apache2/mods-available
2.如果是yum ,apt-get 安装的模块默认都有安装
需要激活
如果是编译安装需要追加编译
由于某些原因,apache的一些模块在最初安装时未能包含进去,在之后又不能重新安装apache,这时就需要在不重新编译apache的情况下新增编译模块,可采用以下方法,举例说明:

我的apache之前忘了configure入proxy模块,此时可进入到apache的原安装文件的modules目录(源代码安装),

之前的apache安装在/usr/local/apache2/下,则可依次执行一下命令:

cd /usr/local/src/httpd-2.2.4/modules

cd proxy

/usr/local/apache2/bin/apxs -c -n -i mod_proxy_ajp.c mod_proxy_balancer.c mod_proxy_connect.c mod_proxy.c mod_proxy_http.c proxy_util.c

/usr/local/apache2/bin/apxs -c -n -i mod_proxy_connect.lo mod_proxy_balancer.lo mod_proxy_ajp.lo mod_proxy.lo proxy_util.lo



此时在 .libs目录下可看到对应的各个so文件,cp到apache的modules目录下就可在http.conf文件中配置LoadModule了,如:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so



最近发现一个更快捷的办法,会自动加入module配置到http.conf文件中:

2.1. 进入apache源代码的modules/proxy目录

2.2 运行如下命令自动编译、安装和修改httpd.conf文件,激活mod_proxy模块:

apachepath/bin/apxs -c -i -a mod_proxy.c proxy_util.c

apachepath/bin/apxs -c -i -a mod_proxy_http.c proxy_util.c

选项说明:
-c 执行编译操作
-i 安装操作,安装一个或多个动态共享对象到服务器的modules目录
-a 自动增加一个LoadModule行到httpd.conf文件,以激活此模块,若此行存在则启用之
-A 与-a类似,但是它增加的LoadModule行前有井号前缀(#)
-e 需要执行编辑操作,可与-a和-A选项配合使用,与-i操作类似,修改httpd.conf文件,但并不安装此模块

3.模块的启用和禁止
在ubuntu 中
a2enmod 模块名
a2dismod 模块名
在centos 中
打开文件找到:

LoadModule rewrite_module modules/mod_rewrite.so

将前面"#"去掉,如果不存在则添加上句。




重启服务

chunjihong 发表于 2013-11-8 06:43:34

俺从不写措字,但俺写通假字!

菜蜂 发表于 2013-11-10 09:53:48

如果跟导师讲不清楚,那么就把他搞胡涂吧!

a6266318 发表于 2013-11-11 23:25:28

站的更高,尿的更远。

xuesn 发表于 2013-11-13 04:19:02

沒有激情的亲吻,哪來床上的翻滾?

喜旎果 发表于 2013-11-14 06:55:18

如果有一双眼睛陪我一同哭泣,就值得我为生命受苦。

o2geao 发表于 2013-11-15 01:40:14

怀揣两块,胸怀500万!
页: [1]
查看完整版本: apache 模块的启用及追加编译 (centos &ubuntu )