我对apache中外部模块的静态编译和动态编译之间的差异感到困惑。有人能解释一下mod_qos的情况吗?
另外,在httpd.conf文件中加载模块的方式有什么区别呢?
<IfModule mod_dir.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule reqtimeout_module>
DirectoryIndex index.php index.html
</IfModule> 如您所见,前者在指令中引用.c文件,而后者不引用?WHy是这样的,它如何改变模块的包含?
谢谢。我是apache的新手,所以请不要介意这个问题听起来很傻。
发布于 2016-07-21 10:31:07
在构建服务器时,静态模块被编译成httpd二进制文件,而动态模块则包含在运行时。在阿帕奇中,几乎所有的分布式模块都是动态添加的。这一点很重要,因为如果对模块进行了更新,则必须重新编译httpd二进制文件才能应用静态编译的更新。
命名约定只是alternative中引用模块的方法。指令,与模块的编译方式无关。
正如文档中所指出的,该模块可以由module-file或module-identifier引用。
例如,
rewrite_module是标识符,mod_rewrite.c是文件名。
注意(为了扩展重复问题的答案):要在服务器中动态加载模块foo_module,请将mod_foo.so文件放在与所有其他模块相同的目录中,并以与主要Apache.conf文件中的所有其他模块相同的格式添加LoadModule指令(正确地引用正确的路径)。
https://serverfault.com/questions/791116
复制相似问题