Как включить генерацию файла core для apache?

Аватар пользователя admin

Часто бывает необходимо включить генерацию файла core (дампа памяти), для того, чтобы отлаживать непонятные падения PHP или при написании модулей к apache. Практически во всех дистрибутивах, по умолчанию эта возможность выключена. Сам же процесс включения генерации core тоже не совсем прост. Вот пошаговая инструкция:

1. Разрешаем для запущенного процесса apache генерацию core на системном уровне. Для этого есть несколько способов:

  • разместить в файле /etc/sysconfig/httpd команду
    ulimit -c unlimited

    и перезапустить apache

  • разместить в файле /etc/security/limits.conf строку

    apache           -       core            -1

    (имея в виду, что веб-сервер apache запускается от пользователя apache) и перезапустить apache.

2. Разрешаем создание core на уровне apache. Без этого пункта всё остальное работать не будет. Для этого в конфигурационный файл httpd.conf вносим строку:

CoreDumpDirectory /tmp

3. Выбираем место, куда будут складываться файлы core на системном уровне. Например, команда

echo "/tmp/httpd-core.%p" > /proc/sys/kernel/core_pattern

позволит размещать файлы core в каталоге /tmp и называться они будут /tmp/httpd-core.PID, где PID - это идентификатор "упавшего" процесса.

4. И наконец, "гвоздь" программы. Одна маленькая системная команда, без которой всё вышеизложенное не будет работать:

echo 2 > /proc/sys/fs/suid_dumpable

которая разрешает ядру создавать файл core в файловой системе.

 

Теперь можете "ронять" apache и получать файлы core.

0
Ваш рейтинг: Нет