Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Apache Error: AH00052: child pid exit signal Segmentation fault (11) Linux / DevOps

Apache Error AH00052: child pid Segmentation fault (11) — Отладка

Обновлено: 18.08.2026  ·  Официальная база знаний

Рабочие процессы Apache аварийно завершаются при обработке определенных клиентских запросов. В файле error.log массово фиксируются фатальные сбои управления памятью: [core:notice] [pid 1234] AH00052: child pid 5678 exit signal Segmentation fault (11). Клиент получает оборванное соединение (ERR_EMPTY_RESPONSE) или статус 502/500.

КомпонентТипичный виновникМеханизм сбоя
PHP Модули / Расширенияphp-opcache, imagick, xdebug, ionCubeНесовместимость ABI версий расширений и ядра PHP
Модули Apache C/C++mod_security, mod_pagespeed, mod_sslОбращение к нулевому указателю (Null Pointer Dereference)
MPM Prefork vs EventПотоконебезопасные C-библиотекиRace condition при работе потоков в mpm_event
  • Apache не падает полностью (мастер-процесс жив), но постоянно пересоздает упавшие дочерние воркеры.
  • Сбой часто воспроизводится при выполнении тяжелых скриптов, генерации PDF, ресайзе картинок или парсинге сложных WAF-правил.
  1. Включите генерацию дампов памяти (Core Dumps) в файле /etc/security/limits.conf и конфигурации Apache:
    # В /etc/apache2/apache2.conf или /etc/httpd/conf/httpd.conf:
    CoreDumpDirectory /tmp
  2. Установите системный лимит на размер core-файлов:
    sudo sysctl -w fs.suid_dumpable=2
    ulimit -c unlimited
  3. При повторном падении проанализируйте core dump с помощью GDB или утилиты coredumpctl:
    # Для systemd-coredump:
    sudo coredumpctl gdb
    
    # Внутри gdb выполните команду получения трассировки стека:
    (gdb) bt
    (gdb) quit
  4. Если стек указывает на сбой внутри php7.x.so / php8.x.so, временно отключите подозрительные расширения (Xdebug, ionCube, Zend OPcache):
    sudo phpdismod xdebug
    sudo phpdismod opcache
    sudo systemctl restart apache2
  5. Если используется многопоточный модуль mpm_event или mpm_worker совместно со старыми потоконебезопасными библиотеками, переключитесь на классический изолированный процессорный модуль mpm_prefork или вынесите PHP в отдельный демон PHP-FPM через mod_proxy_fcgi.
  6. Обновите все системные библиотеки и модули до актуальных релизов через пакетный менеджер.
Внимание к архитектуре: Использование встроенного модуля mod_php с многопоточными MPM (Worker/Event) категорически не рекомендуется. Переход на связку mpm_event + mod_proxy_fcgi + PHP-FPM полностью изолирует сбои PHP-скриптов от процессов веб-сервера Apache.
Практический опыт инженера: В 80% случаев причиной AH00052 является конфликт `mod_security` со сложными регулярными выражениями PCRE при исчерпании стека рекурсии (`pcre.recursion_limit`).

Частые вопросы (FAQ)

Что означает код сигнала 11 (Segmentation fault)?

Сигнал SIGSEGV (11) генерируется ядром ОС, когда процесс пытается прочитать или записать данные по адресу оперативной памяти, который ему не принадлежит, либо пытается выполнить запись в область памяти 'только для чтения'.

Как изолировать проблемный URL, вызывающий segfault?

Повысьте уровень логирования LogLevel debug в конфиге Apache и сопоставьте PID упавшего процесса из error.log с последним запросом в access.log.

Помогает ли перезапуск Apache при периодических сегфолтах?

Перезапуск лишь временно очищает память, но при поступлении аналогичного запроса рабочий процесс снова упадет с сигналом 11.

Где сохраняются core dump файлы по умолчанию в Linux?

В зависимости от настроек ядра: в каталоге, указанном в /proc/sys/kernel/core_pattern (обычно обрабатывается systemd-coredumpd или сохраняется в каталоге CoreDumpDirectory).