SystemdDoctor
служба не работает apache php

Apache: конфликт модулей многопроцессности и PHP

Модуль PHP для Apache работает только с одним видом многопроцессности. При включённом потоковом модуле сервер либо не запускается, либо предупреждает о небезопасной работе. Поэтому связку обычно собирают иначе: PHP через обработчик, а не модулем.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Модуль PHP включён вместе с потоковой многопроцессностью

    Модуль PHP не потокобезопасен в такой сборке. Apache отказывается стартовать или предупреждает.

  2. Включены два модуля многопроцессности

    Их может быть активен только один. При двух Apache сообщает об ошибке конфигурации.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Какие модули активны.

sudo apache2ctl -M 2>/dev/null | grep -iE "mpm|php"

Проверка конфигурации: сообщает о конфликте.

sudo apachectl configtest

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Модуль PHP включён вместе с потоковой многопроцессностью
Почему происходит
Модуль PHP не потокобезопасен в такой сборке. Apache отказывается стартовать или предупреждает.
Как проверить
Посмотрите включённые модули.
sudo apache2ctl -M 2>/dev/null | grep -iE "mpm|php"
Как исправить
Переведите PHP на обработчик через php-fpm и оставьте потоковую многопроцессность: это и быстрее, и надёжнее.
sudo a2dismod php8.3 && sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php8.3-fpm && sudo systemctl restart apache2
2. Включены два модуля многопроцессности
Почему происходит
Их может быть активен только один. При двух Apache сообщает об ошибке конфигурации.
Как проверить
Посмотрите активные модули.
sudo apache2ctl -M 2>/dev/null | grep -i mpm
Как исправить
Отключите лишний модуль: a2dismod mpm_prefork или соответствующий.

Пример вывода

Модуль PHP несовместим с активной многопроцессностью. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

apachectl[4200]: Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
apachectl[4200]: AH00013: Pre-configuration failed
systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE

Связанные ошибки

Где встречается чаще всего

Источники

  • Документация Apache: модули многопроцессности документация программы
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено включением модуля PHP при активной потоковой многопроцессности.
    собственная проверка, systemd 255
    сверено 15 сентября 2026