Apache prefork против Workder - что не так с моими настройками?

Я установил PHP как модуль Apache. у меня было prefork работает все это время. Я прочитал это worker будет потреблять меньше памяти, а предлагать более высокую производительность] 1. Итак, я отредактировал /etc/sysconfig/httpd и без комментариев:

HTTPD=/usr/sbin/httpd.worker

и перезапустил Apache.

Тем не менее, когда я бегу httpd -lЯ все еще получаю следующее:

core.c prefork.c http_core.c mod_so.c

что значит prefork все еще работает, но не worker, Я полагаю.

Теперь, когда я запускаю команду top, я получаю httpd.worker под COMMAND столбец вместо просто httpd,

У меня такой вопрос: мои текущие настройки неверны и будут ли они вредить производительности или потреблению памяти моего сервера?

Я видел, как люди включают Apache worker и PHP FastCGI в одни и те же учебные пособия, поэтому я предполагаю, что эти два идут рука об руку друг с другом. Должен ли я настроить PHP FastCGI для замены mod_php сейчас?

Я использую Amazon EC2, кстати.

1 ответ

Решение

На производной RHEL, httpd использует prefork и httpd.worker использует рабочий.

Изменение строки в sysconfig изменяет, какой двоичный файл использует служба, но когда вы непосредственно запускаете двоичный файл prefork, вы всегда будете видеть prefork как живой MPM (и работающий httpd.worker -l даст вам ожидаемые результаты.

Итак, ваш конфиг работает правильно.

Я видел, как люди включают Apache worker и PHP FastCGI в одни и те же учебные пособия, поэтому я предполагаю, что эти два идут рука об руку друг с другом. Должен ли я настроить PHP FastCGI для замены mod_php сейчас?

В конфигурации по умолчанию для производной RHEL, конфигурация автоматически переключится на модуль ZTS для обеспечения безопасности потоков, когда вы переключитесь на рабочий. FastCGI не является обязательным требованием, но вы определенно можете настроить его, если это ваше предпочтительное развертывание.

Другие вопросы по тегам