On this page
Apache 模块 mod_cgid
Description: | 使用外部 CGI 守护程序执行 CGI 脚本 |
---|---|
Status: | Base |
Module Identifier: | cgid_module |
Source File: | mod_cgid.c |
Compatibility: | 仅限 Unix 线程 MPM |
Summary
除了优化和下面提到的其他ScriptSock指令外,mod_cgid的行为与mod_cgi相似。 有关 Apache 和 CGI 的其他详细信息,请参见mod_cgi摘要.
在某些 UNIX os 上,从多线程服务器派生一个进程是非常昂贵的操作,因为新进程将复制父进程的所有线程。为了避免在每次 CGI 调用时产生此费用,mod_cgid创建了一个外部守护程序,该守护程序负责派生子进程来运行 CGI 脚本。主服务器使用 unix 域套接字与此守护程序通信。
在编译过程中选择多线程 MPM 时,默认情况下使用此模块,而不是mod_cgi。在用户级别,此模块的配置和操作与mod_cgi相同。唯一的 exception 是附加指令ScriptSock
,该指令给出了用于与 cgi 守护程序通信的套接字的名称。
CGIDScriptTimeout Directive
Description: | await CGI 程序更多输出的时间 |
---|---|
Syntax: | CGIDScriptTimeout time[s|ms] |
Default: | 未设置或设置为 0 时Timeout指令的值 |
Context: | 服务器配置,虚拟主机,目录,.htaccess |
Status: | Base |
Module: | mod_cgid |
Compatibility: | 在 httpd 2.4.10 及更高版本中可用;在以前的版本中,没有应用超时 |
该指令限制了 await CGI 程序更多输出的时间。如果超过了时间,则请求和 CGI 将终止。
Example
CGIDScriptTimeout 20
ScriptSock Directive
Description: | 用于与 cgi 守护程序通信的套接字的文件名前缀 |
---|---|
Syntax: | ScriptSock file-path |
Default: | ScriptSock cgisock |
Context: | server config |
Status: | Base |
Module: | mod_cgid |
该指令设置用于与 CGI 守护程序通信的套接字的文件名前缀,将附加与服务器的进程 ID 对应的 extensions。套接字将使用启动 Apache 的用户(通常是 root)的权限打开。为了维护使用 CGI 脚本进行通信的安全性,重要的是没有其他用户有权在套接字所在的目录中进行写操作。
如果 file-path 不是绝对路径,则指定的位置将相对于DefaultRuntimeDir的值。
Example
ScriptSock /var/run/cgid.sock