Apache2-mod-ruid2 不起作用

Apache2-mod-ruid2 不起作用

我使用 Apache2 和 PHP7 cgi 设置了一台 Ubuntu 16.04 服务器。到目前为止一切顺利,但一旦我安装 ruid2

sudo apt-get install libapache2-mod-ruid2

Apache 停止正常工作。当我尝试访问服务器时,我收到 ERR_EMPTY_RESPONSE,错误 Apache 日志显示:

child pid 9252 exit signal Aborted (6)

ruid2 模块有什么问题?

答案1

即使模块是从源代码编译的,我们也遇到了同样的问题。

为了提供更多调试信息,我像这样启动了 apache:

source /etc/apache2/envvars; strace /usr/sbin/apache2 -X -e info -f /etc/apache2/apache2.conf

重要的部分发生在 apache 收到第一个请求时:

    clone(child_stack=0x7f0d483d8f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7f0d483d99d0, tls=0x7f0d483d9700, child_tidptr=0x7f0d483d99d0) = 8681
    rt_sigtimedwait(~[ILL TRAP ABRT BUS FPE KILL SEGV USR2 PIPE CONT STOP SYS RTMIN RT_1], NULL, NULL, 8

<< WAITING FOR HTTP REQUEST >>

    ) = -1 EINTR (Interrupted system call)
    --- SIGRT_1 {si_signo=SIGRT_1, si_code=SI_TKILL, si_pid=8679, si_uid=33} ---
    setgroups(1, [33])                      = -1 EPERM (Operation not permitted)
    futex(0x7f0d4ebf1d9c, FUTEX_WAKE_PRIVATE, 1) = 0
    futex(0x7f0d47bd7c10, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
    +++ killed by SIGABRT (core dumped) +++
    Aborted (core dumped)

在 setgroups 期间我们现在得到“操作不允许”。

如果您使用 mpm_worker 或 mpm_event,似乎会发生这种情况,使用 mpm_prefork 则运行良好。根据这些 mpm 的工作方式,这可能是合乎逻辑的,但我们多年来一直在大多数共享托管服务器上将 mod_ruid2 与 mpm_worker 结合使用,没有任何问题(12.04 和 14.04)。

相关内容