Apache > HTTP Server > 文档 > 版本2.2 > 模块
   致谢 | 本篇译者:金步国(其他作品) | 本页最后更新:2006年10月20日[查看最新版本]

Apache模块 mod_cgid

说明在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本
状态基本(B)
模块名cgid_module
源文件mod_cgid.c
兼容性仅用于Unix系统上的线程型MPM

概述

除了优化和下面额外的ScriptSock指令,mod_cgid表现得与mod_cgi非常相似。参见mod_cgi以了解关于Apache和CGI的信息细节。

在特定的unix操作系统上,从一个多线程服务器fork一个进程是非常昂贵的操作,因为新进程会复制其父进程的所有线程。为了避免每个CGI调用都导致产生这样的开销,mod_cgid创建一个外部守护进程来负责fork子进程以运行CGI脚本。主服务器使用unix domain套接字与这个守护进程通信。

只要编译时选择了多线程型的MPM支持,这个模块就会默认代替mod_cgi 。在用户层面,此模块在配置和操作上与mod_cgi是一样的。唯一的例外是有一个额外的指令ScriptSock给出了用于与cgi守护进程通信的套接字文件名前缀。

ScriptSock 指令

说明用来与CGI守护进程通信的套接字文件名前缀
语法ScriptSock file-path
默认值ScriptSock logs/cgisock
作用域server config, virtual host
状态基本(B)
模块mod_cgid

此指令设置用来与CGI守护进程通信的套接字文件名前缀(其后附加父进程PID组成完整的文件名)。这个套接字将会用启动Apache服务器的父进程用户权限(通常是root)打开。为了维护与CGI脚本通讯的安全性,不允许其他用户拥有写入套接字所在目录的权限是很重要的。

示例

ScriptSock /var/run/cgid.sock