SNI対応に備えてPHPの同居調査をしていますが、納得いかないところでつまずいています。
VirtualHost を SuexecUserGroup 指定で実行しているのですが、SetHandler cgi-script では正しく動くのに SetHandler fcgid-script では動かない。
エラーメッセージはログに出力されているのでそのメッセージを頼りに apache の suexec ソース suexec.c 追いかけて、場所はわかっています。
if (strspn(target_uname, "1234567890") != strlen(target_uname)) {
if ((pw = getpwnam(target_uname)) == NULL) {
log_err("invalid target user name: (%s)\n", target_uname);
exit(105);
}
}
else {
if ((pw = getpwuid(atoi(target_uname))) == NULL) {
log_err("invalid target user id: (%s)\n", target_uname);
exit(121);
}
}
この部分で cgi-script 指定の場合は、通過するけど fcgid-script 指定の場合は invalid target user name: (%s) とでて、しかも %s は uid が表示されています。
謎だ。