静态编译和动态编译的理解

回复 收藏
本帖最后由 蔡炳森 于 2016-2-2 14:51 编辑

静态编译:
编译的时候,所有的模块自己编译进/usr/local/apache2/bin /httpd 这个文件中 ,启动Apache的时候这些模块就已经加载进来了,可以直接来使用,而不用再 httpd.conf 中在 LoadModule 来加载,只要在   中来配置就可以了。使用静态编译会耗费一定的内存,毕竟我们是将暂时不需要的模块进行了加载。
动态编译:
编译的时候,使用 enable-module=shared  或者 enable-modules-shared=module来动态编译。 动态显然就不编译到httpd里面去了,启动的时候根本不会加载这个模块, 而是将所有的动态安装的模块放到/usr/local/apache2/modules这个目录中。你会发现里面有很多.so结尾的 文件。你想用,就在httpd.conf中使用 loadmodule 这个语法来加载,只需要将LoadModule这个模块前的#去掉就可启用该模块。然后在相关的配置中加入相关的语句。
例如:我们要使用mod_headers这个模块来定义header。只要在httpd.conf中添加如下语句:

    Header add MyHeader "Hello"

到这步为止就完成了启用loadModule模块和定义loadmodule功能。
如有理解错误的话,欢迎拍砖。

附录:

apache的扩展模块安装
http://www.apelearn.com/bbs/foru ... id=848&fromuid=6919
(出处: 【阿铭Linux】)



2016-02-01 14:01 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: