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