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处理,因此核心位置完全由操作系统决定。
