prefork.c未显示在httpd -l中

时间:2018-11-26 21:19:40

标签: apache centos7 preforking

我有CentOS 7,我的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模块 但是httpd -V | grep "Server MPM"的答案是:

Server MPM:     prefork

此外,这些链接的建议没有帮助: apache2-prefork-dev installation Prefork MPM configuration not in 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中看到prefork模块 我该怎么办? 感谢分享。

1 个答案:

答案 0 :(得分:0)

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

通过使用conf文件中的LoadModule指令调用

其他模块,可以将它们作为DSO(动态共享对象)动态地加载。 您可以使用httpd -M而不是httpd -l列出它们(以及静态列表)。如果prefork模块出现在列表中,那是因为它已加载并且正在工作。

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

关于prefork配置,可以将其直接插入httpd.conf中,或者(根据您的情况)插入另一个文件中,然后使用Include指令将其“合并”到服务器配置中在httpd.conf中。 您可以通过查找已存储的包含文件来找到要搜索的prefork配置(您应该有一个/etc/httpd/conf.modules.d/00-mpm.conf,但在最坏的情况下,一个一个地打开它们最终会给您一些结果)。如果确实需要,可以从那里剪切它,然后直接粘贴到httpd.conf中。

最后,如果您真的想看到prefork模块出现在静态模块列表中,则必须手动 configure and compile apache源,将该特定模块添加为静态在此过程中。

您可以在apache docs上阅读有关此问题的更多信息,并且,如果您决定采用这种方式,您可能会发现此问题更适合ServerFault网站。