mod_cgid
描述: | 使用外部 CGI 守护程序执行 CGI 脚本 |
状态: | Base |
模块标识符: | cgid_module |
源文件: | mod_cgid.c |
兼容性: | 仅限 Unix 线程 MPM |
摘要
除了下面提到的优化和附加ScriptSock指令外,mod_cgid的行为与mod_cgi类似。有关 Apache 和 CGI 的更多详细信息,请参阅 mod_cgi 摘要.
在某些 unix 操作系统上,从 multi-threaded 服务器分支 process 是一项非常昂贵的操作,因为新的 process 将复制 parent process 的所有线程。为了避免在每次 CGI 调用中产生这笔费用,mod_cgid创建了一个外部守护程序,负责将子进程分配给 run CGI 脚本。主服务器使用 unix 域 socket 与此守护进程通信。
在编译 process 期间选择 multi-threaded MPM 时,默认使用此模块而不是mod_cgi。在用户 level 中,此模块在 configuration 和mod_cgi操作中完全相同。唯一的 exception 是附加指令ScriptSock
,它给出 socket 的 name 用于与 cgi 守护进程的通信。
CGIDScriptTimeout 指令
描述: | 等待来自 CGI 程序的更多输出的 time 的长度 |
句法: | CGIDScriptTimeout time[s\|ms] |
默认: | 未设置时指令的 value |
Context: | server config,virtual host,directory,.htaccess |
状态: | Base |
模块: | mod_cgid |
兼容性: | 在 2.4 及更早版本中,CGIDScriptTimeout 默认为零 |
该指令限制 time 的长度以等待 CGI 程序的更多输出。如果超过 time,则终止请求和 CGI。
例
CGIDScriptTimeout 20
ScriptSock 指令
描述: | 用于与 cgi 守护程序通信的 socket 的文件名前缀 |
句法: | ScriptSock file-path |
默认: | ScriptSock cgisock |
Context: | 服务器配置 |
状态: | Base |
模块: | mod_cgid |
该指令设置 socket 的文件名前缀,用于与 CGI 守护进程通信,将附加与服务器的 process ID 对应的扩展名。 socket 将使用启动 Apache(通常是 root)的用户的权限打开。为了保持与 CGI 脚本通信的安全性,重要的是没有其他用户有权在 socket 所在的目录中写入。
如果 file-path 不是绝对路径,则指定的位置将相对于DefaultRuntimeDir的 value。
例
ScriptSock /var/run/cgid.sock