Я установил 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
, Я полагаю.
Теперь, когда я запускаю верхнюю команду, я получаю httpd.worker
под COMMAND
столбец вместо просто httpd
.
У меня вопрос: верны ли мои текущие настройки и повлияют ли они на производительность или потребление памяти моего сервера?
Я видел, как люди включали Apache worker и PHP FastCGI в одни и те же учебники, поэтому я предполагаю, что эти 2 идут рука об руку друг с другом. Стоит ли настраивать PHP FastCGI для замены mod_php
сейчас?
Кстати, я использую Amazon EC2.
На производной от RHEL, httpd
использует prefork и httpd.worker
использует worker.
Изменение строки в sysconfig меняет, какой двоичный файл использует служба, но когда вы напрямую запускаете двоичный файл prefork, вы всегда будете видеть prefork как живой MPM (и httpd.worker -l
даст вам ожидаемые результаты.
Итак, ваш конфиг работает правильно.
Я видел, как люди включали Apache worker и PHP FastCGI в одни и те же учебники, поэтому я предполагаю, что эти 2 идут рука об руку друг с другом. Следует ли мне сейчас настроить PHP FastCGI для замены mod_php?
В конфигурации по умолчанию производной RHEL конфигурация автоматически переключится на модуль ZTS для обеспечения безопасности потоков, когда вы переключитесь на worker. FastCGI не является обязательным требованием, но вы определенно можете настроить его, если это ваше предпочтительное развертывание.