Apache HTTP Server 2.4 版
描述 | 使用外部 CGI 守护进程执行 CGI 脚本 |
---|---|
状态 | 基础 |
模块标识符 | cgid_module |
源文件 | mod_cgid.c |
兼容性 | 仅限 Unix 线程化 MPM |
除了以下提到的优化和额外的 ScriptSock
指令外,mod_cgid
的行为类似于 mod_cgi
。有关 Apache 和 CGI 的更多详细信息,请参阅 mod_cgi
摘要。
在某些 Unix 操作系统上,从多线程服务器派生进程是一个非常昂贵的操作,因为新进程将复制父进程的所有线程。为了避免在每次 CGI 调用时产生这种开销,mod_cgid
创建了一个外部守护进程,负责派生子进程来运行 CGI 脚本。主服务器使用 Unix 域套接字与该守护进程通信。
只要在编译过程中选择了多线程 MPM,此模块就会默认使用,而不是 mod_cgi
。在用户级别,此模块在配置和操作方面与 mod_cgi
相同。唯一的例外是额外的指令 ScriptSock
,它指定用于与 cgi 守护进程通信的套接字的名称。
描述 | 等待 CGI 程序输出更多内容的时间长度 |
---|---|
语法 | CGIDScriptTimeout time[s|ms] |
默认值 | 未设置或设置为 0 时 |
上下文 | 服务器配置、虚拟主机、目录、.htaccess |
状态 | 基础 |
模块 | mod_cgid |
兼容性 | 在 httpd 2.4.10 及更高版本中可用;在之前的版本中没有应用超时 |
此指令限制等待 CGI 程序输出更多内容的时间长度。如果超过时间,请求和 CGI 将被终止。
CGIDScriptTimeout 20
描述 | 用于与 cgi 守护进程通信的套接字的文件名前缀 |
---|---|
语法 | ScriptSock file-path |
默认值 | ScriptSock cgisock |
上下文 | 服务器配置 |
状态 | 基础 |
模块 | mod_cgid |
此指令设置用于与 CGI 守护进程通信的套接字的文件名前缀,将附加一个与服务器进程 ID 相对应的扩展名。套接字将使用启动 Apache 的用户的权限打开(通常是 root)。为了维护与 CGI 脚本通信的安全性,重要的是,没有其他用户有权写入套接字所在的目录。
如果 file-path 不是绝对路径,则指定的路径将相对于 DefaultRuntimeDir
的值。
ScriptSock /var/run/cgid.sock