Как включить генерацию файла core для apache?
Часто бывает необходимо включить генерацию файла 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.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2202 просмотра