在 Apache 內的虛擬主機預設會使用和 Apache 相同的身份執行 CGI,例如 apache 或 nobody,如果想每個虛擬主機使用不同身份執行,可以透過 suEXEC 實現。

要檢查 Apache 是否支援 suEXEC,可以執行以下指令:

/usr/local/apache/bin/httpd -l | grep suexec

以上 /usr/local/apache/bin 改成你的 Apache 安裝目錄,如果結果出現了 "mod_suexec.c",代表 Apache 已經支援 suEXEC,如果不支援的話請重新編譯 Apache,並在編譯時加上 –enable-suexec 選擇。以下是 suEXEC 使用方法:

Apache 1.3.x
在 httpd.conf 內的 <VirtualHost> 段落下加上兩行,分別是:

User samtang
Group samtang

以上會以 samtang 作為使用者及群組執行這個虛擬主機的 CGI,重新啟動 Apache 後便會生效。

Apache 2.0.x
在 httpd.conf 內的 <VirtualHost> 段落下加上這行:

SuexecUserGroup samtang samtang

重新啟動 Apache 即可。