Temos o mesmo problema, mesmo quando o módulo é compilado a partir da fonte.
Para fornecer mais algumas informações de depuração, iniciei o apache assim:
source /etc/apache2/envvars; strace /usr/sbin/apache2 -X -e info -f /etc/apache2/apache2.conf
A parte importante acontece quando o apache recebe a primeira solicitação:
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)
Durante os setgroups, agora temos "Operação não permitida".
Isso parece acontecer se você usar mpm_worker ou mpm_event, com mpm_prefork funciona bem. Com base em como funciona o mpm, pode ser lógico, exceto que temos usado mod_ruid2 em combinação com mpm_worker na maioria dos nossos servidores de hospedagem compartilhada por anos sem qualquer problema (12.04 e 14.04).