Apache模块动态加载和静态加载 2010/08/15 15:22 这里我来解释下什么叫动态加载和静态加载? 说简单,并用打比喻的方式来解释. 好比有两个人a和m a代表apache,m代表module 要想让a使用m的东西 一个方法是把m的东西都放到a那里去,a使用的时候就是现成的了 就是所谓的静态编译 还有一个方法, 就是告诉a, m的住址,当a要使用m的东西的时候,a去找m,然后使用 不过,这种方法要注意的一个问题就是:m必须要有实际的住址, 否则a会找不到m而产生错误的,我此文开始提到的 apachectl startssl产生 的错误就是这个原因,应该再编译好ssl才可以的. 这种方法也就是apache 的动态(DSO)编译了 静态: 在使用./configure 编译的时候,如果不指定某个模块为动态,即没有使用:enable-mods-shared=module或者enable-module=shared 这个2个中的一个,那么所有的默认模块为静态。 那么何谓静态? 其实就是编译的时候所有的模块自己编译进 httpd 这个文件中(我们启动可以使用这个执行文件,如: ./httpd & ) ,启动的时候这些模块就已经加载进来了,也就是可以使用了, 通常为:<ifmodule> </ifmodule> 来配置。所以大家看到的配置都是