Apache HTTP Server 版本2.2

| 說明 | 在線程型MPM(worker)上用一個外部CGI守護進程執(zhí)行CGI腳本 |
|---|---|
| 狀態(tài) | 基本(B) |
| 模塊名 | cgid_module |
| 源文件 | mod_cgid.c |
| 兼容性 | 僅用于Unix系統(tǒng)上的線程型MPM |
除了優(yōu)化和下面額外的ScriptSock指令,mod_cgid表現(xiàn)得與mod_cgi非常相似。參見mod_cgi以了解關(guān)于Apache和CGI的信息細節(jié)。
在特定的unix操作系統(tǒng)上,從一個多線程服務(wù)器fork一個進程是非常昂貴的操作,因為新進程會復(fù)制其父進程的所有線程。為了避免每個CGI調(diào)用都導(dǎo)致產(chǎn)生這樣的開銷,mod_cgid創(chuàng)建一個外部守護進程來負責(zé)fork子進程以運行CGI腳本。主服務(wù)器使用unix domain套接字與這個守護進程通信。
只要編譯時選擇了多線程型的MPM支持,這個模塊就會默認代替mod_cgi 。在用戶層面,此模塊在配置和操作上與mod_cgi是一樣的。唯一的例外是有一個額外的指令ScriptSock給出了用于與cgi守護進程通信的套接字文件名前綴。
| 說明 | 用來與CGI守護進程通信的套接字文件名前綴 |
|---|---|
| 語法 | ScriptSock file-path |
| 默認值 | ScriptSock logs/cgisock |
| 作用域 | server config, virtual host |
| 狀態(tài) | 基本(B) |
| 模塊 | mod_cgid |
此指令設(shè)置用來與CGI守護進程通信的套接字文件名前綴(其后附加父進程PID組成完整的文件名)。這個套接字將會用啟動Apache服務(wù)器的父進程用戶權(quán)限(通常是root)打開。為了維護與CGI腳本通訊的安全性,不允許其他用戶擁有寫入套接字所在目錄的權(quán)限是很重要的。
ScriptSock /var/run/cgid.sock