prefork.c没有显示在httpd-l中



我有centos7,我的apache版本是2.4.6。我键入了以下命令:

httpd -l

这就是答案:

Compiled in modules:
core.c
mod_so.c
http_core.c

因此,我看不到这些模块之间的prefork.c。此外,我在/etc/httpd/conf/httpd.conf中看不到prefork模块但CCD_ 1的答案是:

Server MPM:     prefork

此外,这些链接的建议也没有帮助:apache2预工作开发安装预处理MPM配置不在httpd.conf中(这意味着安装httpd-devel没有帮助,在/etc/httpd/conf.modules.d/00-mpm.conf中添加以下行并不能解决我的问题:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
StartServers           5
ServerLimit            256
MaxRequestWorkers      256
MaxConnectionsPerChild 0

))我想在httpd -l的答案中看到prefork.c,我也想在/etc/httpd/conf/httpd.conf中看到prefwork模块我该怎么办?感谢分享。

httpd -l仅将在编译时添加到服务器中的模块列为静态模块。

通过在conf文件中使用LoadModule指令调用其他模块,可以将其动态加载为DSO(动态共享对象(。您可以使用httpd -M而不是httpd -l列出它们(以及静态的(。如果预处理模块出现在列表中,那是因为它已加载并且正在工作。

静态和DSO这两种方法都能很好地工作,并且您可以(也可能应该(毫无问题地使用DSO。

关于prefork-config,它可以直接插入httpd.conf中,或者(根据您的情况(插入另一个文件中,然后将该文件与httpd.conf中的httpd -V | grep "Server MPM"0指令"合并"到服务器配置中。您可以通过查找包含的文件来找到您搜索的prefork配置(您应该有一个/etc/httpd/conf.modules.d/00-mpm.conf,但最坏的情况是,逐个打开它们最终会给您一些结果(。如果你真的想,你可以从那里剪切它,然后直接粘贴到httpd.conf中。

最后,如果真的希望看到prefork模块出现在静态模块列表中,则必须手动配置和编译apache源,并在过程中将该特定模块添加为静态模块。

您可以在apache文档上阅读更多关于这方面的内容,如果您决定这样做,您可能会发现这个问题更适合ServerFault网站

最新更新