Internet 信息服务支持 CGI 应用程序。此主题提供在 Web 服务器上安装和配置 CGI 应用程序的管理信息。有关编写 CGI 应用程序的一般信息,请参阅 Microsoft 的 MSDN 联机资料库。
Web 服务器接收到包含 CGI 程序名以及此程序所需的任何参数的 URL 时,将执行 CGI 程序。如果 CGI 程序已被编译为可执行文件 (.exe),则必须授予对包含程序的目录的“执行”权限,用户才能运行此程序。如果 CGI 程序是以脚本形式(如 Perl 脚本)编写的,则既可以提供目录的“执行”权限,也可以提供“脚本”权限。要使用“脚本”权限,必须将脚本解释程序标记为脚本引擎。
如果正在考虑开发新的 CGI 应用程序,Microsoft 提供的多种方法都值得您做一些深入研究。如果希望加快执行速度,可以考虑开发 ISAPI 扩展。如果希望便于开发,可以考虑开发 ASP 应用程序。由于 ASP 可以处理与编写 CGI 应用程序相关的许多传统工序(如解析 HTTP 头),所以特别受编程和脚本技术初学者的青睐。详细信息,请参阅 Active Server Pages。
安装和配置 CGI 应用程序:Windows 操作系统不提供 Perl、SED 或 AWK 解释程序。可以从第三方开发商获得这些解释程序。
如果选择了“脚本”权限,则必须在此目录的属性页中将脚本解释程序标记为脚本引擎。只有标记为脚本引擎的解释程序才可以在此目录中执行。可执行文件(.dll 和 .exe 文件)无法直接执行,即浏览器请求不能通过将程序名包含在 URL 中来启动 Web 服务器上的可执行文件。同时启用“脚本”权限和“脚本引擎”选项,可以很安全地将内容文件(如 .htm 或 .gif 文件)与 CGI 脚本置于同一目录下。内容文件显示在浏览器中,而且可以执行脚本,但没有用户能够运行未经授权的程序,脚本命令也不会显示在浏览器中。
要点
Internet 信息服务可将文件扩展名映射到解释程序。例如,如果使用以 .pl 为扩展名的 Perl 脚本,应将 .pl 扩展名映射到运行 Perl 脚本的程序,将 .bat 和 .cmd 文件映射到命令解释程序 (Cmd.exe)。请参阅设置应用程序映射。
如果设置了 NTFS 访问权限,请确认需要运行程序的所有用户都具有此目录的“执行”权限。如果网站接受匿名用户,请确保匿名用户(IUSR_computername 帐户)具有“执行”权限。
Internet 信息服务支持大多数标准服务器环境变量。
如果您的脚本所访问的另一个脚本映射到了在远程服务器上运行的 Cmd.exe,默认工作目录设置为本地计算机上的 %SYSTEM32%。%SYSTEM32% 的默认值为 \Winnt\System32(Windows 2000 或更高版本)和 \Win95\System(Windows 95 或更低版本)。
为安全起见,Web 服务器不将命令解释程序的特殊字符传递给映射的 CGI 应用程序。默认情况下,调用 CGI 应用程序的 URL 中不能包含下列字符。
| ( , ; % < >
尽管不推荐这样做,但仍可通过更改注册表中 AllowSpecialCharsInShell 的值来使用某些特殊字符。详细信息,请参阅 WWW 服务注册表项。