prefork.c не отображается в httpd -l - PullRequest
0 голосов
/ 27 ноября 2018

У меня CentOS 7 и версия моего apache - 2.4.6.Я набрал эту команду:

httpd -l

Это ответ:

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

Поэтому я не вижу prefork.c среди этих модулей.Кроме того, я не вижу модуль prefork в /etc/httpd/conf/httpd.conf, но ответ httpd -V | grep "Server MPM" таков:

Server MPM:     prefork

Более того, предложение этих ссылок бесполезно: установка apache2-prefork-dev Конфигурация Prefork 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

)) Я хочу увидеть prefork.c в ответе httpd -l, а также хочу увидеть модуль prefork в /etc/httpd/conf/httpd.conf что мне делать?Спасибо, что поделились.

1 Ответ

0 голосов
/ 27 ноября 2018

httpd -l только перечисляет модули, которые были добавлены в время компиляции на сервере, как статические модули.

Другие модули могут быть загружены динамически какDSO (динамический общий объект), вызывая их с помощью директивы LoadModule в файле conf.Вы можете перечислить их (наряду со статическими), используя httpd -M вместо httpd -l.Если модуль prefork появляется в списке, это потому, что он загружен и работает.

Оба метода, статический и DSO, работают хорошо, и вы можете (и, вероятно, должны) использовать DSO без каких-либо проблем.

Что касается конфигурации prefork, ее можно вставить непосредственно в httpd.conf или (как кажется, в вашем случае) в другой файл, который затем «объединяется» в конфигурации сервера с директивой Include в httpd.конф.Вы можете найти конфигурацию prefork, которую вы ищете, найдя файл, в котором он был сохранен (у вас должно быть /etc/httpd/conf.modules.d/00-mpm.conf, но в худшем случае, открывая их один за другим, вы в конечном итоге получите некоторый результат).И если вы действительно этого хотите, вы можете вырезать его оттуда и вставить вместо него прямо в httpd.conf.

Наконец, если вы действительно хотите, чтобы модуль prefork появился в статических модуляхсписок, вам придется вручную настроить и скомпилировать исходники apache, добавив этот конкретный модуль как статический в процессе.

Подробнее об этом вы можете прочитать в apache docs и, если вы решите пойти по этому пути, вы, вероятно, обнаружите, что этот вопрос лучше подходит для ServerFault веб-сайта.

...