为Apache动态增加模块

Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法:

1. 一是完全重新编译Apache, 再安装

2. 编译模块为SO文件,使用LoadModule指令加载扩展模块。

这里只讲第二个方法

情景:现在需要启用Apache的deflate模块,即压缩输出,以加快网站下载,节省网络带宽

服务器 Red Hat AS 4

Aapache安装在/usr/local/apache2/

Apache安装源文件保存在/usr/local/soft/httpd-2.2.8/下

要求:加载mod_deflate.c模块,使Apache支持压缩输出

1. 现在检查 /usr/local/apache2/conf/httpd.conf, 没有发现类似:LoadModule deflate_module        modules/mod_deflate.so

说明,Apache没有加载此模块

2. 再检查 /usr/local/apache2/modules/, 在此目录下并没有发现mod_deflate.so 文件,说明此模块未被编译好,那么需要先编译模块,再加载之

3. 先进入mod_deflate.c文件所在目录:

[[email protected] ~/]#cd /usr/local/soft/httpd-2.2.8/modules/filte r

4. 利用apxs文件编译目标模块

[[email protected] /usr/local/soft/httpd-2.2.8/modules/filters]#/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c

说明:-i  安装, -c 编译指定模块 -a激活模块(即向httpd.conf添加 LoadModule指令)

运行结果:

................

----------------------------------------------------------------------
chmod 755 /usr/local/apache2/modules/mod_deflate.so
[activating module `deflate‘ in /usr/local/apache2/conf/httpd.conf]

表示模块编译后存放为 /usr/local/apache2/modules/mod_deflate.so, 并自动在httpd.conf中激活了模块

那么,我们现在检查/usr/local/apache2/conf/httpd.conf, 会发现程序已经自动添加了

LoadModule deflate_module     modules/mod_deflate.so

5. 那么,我们重启Apache即可:

[[email protected] ~]#/usr/local/apache2/bin/apachectl restart

如果在上述第二步中发现模块文件已经存在,则不需要再编译模块,手工修改httpd.conf,重启Apache即可

时间: 2024-08-10 02:09:35

为Apache动态增加模块的相关文章

apache动态添加模块

Apache已经安装完毕并投入运行,但是后来却发现部分模块没有加载,当然有两个方法: 1. 一是完全重新编译Apache, 再安装 2. 编译模块为SO文件,使用LoadModule指令加载扩展模块. apache安装后追加mod_rewrite 1.apache1.3 apache_1.3.34.tar.gz 解压后的目录为 /root/apache_1.3.34 文中简称为“源码目录” apache安装目录 /usr/local/apache 文中简称为“目标目录” 步骤: 1.Apache

NGINX动态增加模块,平滑升级

Nginx 添加第三方模块 众所周知Nginx是分成一个个模块的,比如core模块,gzip模块,proxy模块,每个模块负责不同的功能,除了基本的模块,有些模块可以选择编译或不编译进Nginx.官网文档中的Modules reference部分列出了nginx源码包的所有模块.我们可以按照自己服务器的需要来定制出一个最适合自己的Nginx服务器. 除了Nginx官网源码包提供了各种模块,Nginx还有各种各样的第三方模块.官方文档NGINX 3rd Party Modules也列出了Nginx

Apache 动态虚拟主机配置

经常在开发中为Apache web server添加虚拟主机  方便多个项目的 同时运营,但是每次增加新的项目时 都得增加VirtualHost    部分,时间久了VirtualHost 部分也多了,看着头疼. NameVirtualHost 111.22.33.44 <VirtualHost 111.22.33.44> ServerName www.customer-1.com DocumentRoot /www/hosts/www.customer-1.com/docs ScriptAl

单独编译apache的rewrite模块

 单独编译apache的rewrite模块 当我们编译安装好apache的时候,就像这样: ./configure \ --prefix=/usr/local/apache \   //安装的路径 --with-included-apr \        // 跨平台 --enable-so \                 //启用DSO --enable-deflate=shared \    //动态共享的方式编译deflate模块 --enable-expires=shared \  

如何通过反射实现动态功能模块加载

程序集包含模块,而模块包含类型,类型又包含成员.反射则提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访问其字段和属性. 下面我们将介绍如何通过不使用反射的方式和使用反射的方式加载功能模块.实现效果: 1.        WinForm 主程序 主程序我们使用Winform程序,VS2008 工具C#语言开发.包括工具栏.状态栏及TabControl控件.我们使用TabControl 作为功能模块容器

[转] 通过反射实现动态功能模块加载

原文 如何通过反射实现动态功能模块加载 程序集包含模块,而模块包含类型,类型又包含成员.反射则提供了封装程序集.模块和类型的对象.您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型.然后,可以调用类型的方法或访问其字段和属性. 下面我们将介绍如何通过不使用反射的方式和使用反射的方式加载功能模块.实现效果: 1. WinForm 主程序 主程序我们使用Winform程序,VS2008 工具C#语言开发.包括工具栏.状态栏及TabControl控件.我们使用TabCon

【转】Android ROM研究---Android build system增加模块

原文网址:http://hualang.iteye.com/blog/1141315 Android build system就是编译系统的意思 在我们需要向自己编译的源代码中增加模块的时候,需要一些规则,当然这个规则都是类似的. Android.mk文件解析 让我们来看一个 Android.mk 文件的样子 Java代码 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE :=Hello LOCAL_SRC_FILES

apache 单独生成模块

apache 单独生成模块 一般这种模块都是后期自己去生成的,比如一般在安装apache时都会--enable-so  ,允许动态加载模块. 这个模块你可以这样去生成. 1.下载一个与当前使用的apache一样版本的安装包. 2.解压安装包,然后进入其目录#cd /tmp/httpd-2.2.11/modules/mappers/#ls   ,此目录有个mod_speling.c文件 3.生成模块/usr/local/apache/bin/apxs -c -i -a mod_speling.c

ZooKeeper动态增加Server(动态增加节点)的研究(待实践)

说明:是动态增加Server,不是动态增加连接到ZK Server的Client. 场景如下(转自外文): 1.在t=t_1->[peer-1(Leader),peer-2],peer-1是主节点,所有客户端连接到该节点. 2.在t=t_2->[peer-1(Leader),peer-2,peer-3],稍后的时候,同行3加入了该组.是否可以“动态地”将动态列表添加到zookeeper服务器列表(即,在对等体1上不重新启动ZooKeeper)? 3.在t=t_3->[peer-3(Lea