CoreDumpDirectory 指令
描述: | 转储核心之前Apache HTTP Server尝试切换的目录 |
---|---|
句法: | CoreDumpDirectory directory |
默认: | See usage for the default setting |
内容: | 服务器配置 |
状态: | MPM |
模组: | event ,worker ,prefork |
这控制了Apache httpd在转储核心之前尝试切换到的目录。如果您的操作系统配置为在崩溃过程的工作目录中创建核心文件,CoreDumpDirectory
则有必要从默认ServerRoot
目录更改工作目录,默认目录不能由服务器运行时的用户写入。
如果要使用核心转储进行调试,则可以使用此伪指令将其放置在其他位置。如果您的操作系统未配置为将核心文件写入崩溃进程的工作目录,则此伪指令无效。
Linux系统安全说明
在Linux上使用此伪指令可能允许系统上的其他进程(如果以类似的特权运行,例如CGI脚本)通过
ptrace
系统调用附加到httpd子级。这可能会削弱对某些安全攻击的保护。不建议在生产系统上使用此指令。
Linux上的核心转储
如果Apache httpd以root用户身份启动并切换到另一个用户,则Linux内核将禁用核心转储,即使该进程的目录是可写的。Apache httpd(2.0.46及更高版本)可在Linux 2.4及更高版本上重新启用核心转储,但前提是您明确配置CoreDumpDirectory
。
BSD上的核心转储
要在BSD系统(例如FreeBSD)上启用suid可执行文件的核心转储,请设置kern.sugid_coredump
为1。
具体信号
CoreDumpDirectory
仅对一组致命信号进行处理:SIGFPE,SIGILL,SIGABORT,SIGSEGV和SIGBUS。
在某些操作系统上,SIGQUIT还会导致核心转储,但不会通过CoreDumpDirectory
或EnableExceptionHook
处理,因此核心位置完全由操作系统决定。