配置 CGI 应用程序

IIS 6.0 支持通用网关接口 (CGI) 应用程序。本主题提供了有关在 Web 服务器上安装和配置 CGI 应用程序以及设置 CGI 脚本超时值的管理信息。

CGI 程序在 Web 服务器接收到包含 CGI 程序名和程序所需参数的 URL 时执行。如果将 CGI 程序编译为可执行 (.exe) 文件,则必须提供包含程序执行权限的目录,以便用户可以运行程序。如果 CGI 程序以脚本形式(例如 Perl 脚本)编写,则既可为目录提供执行权限,也可为其提供脚本权限。要使用脚本权限,必须将脚本解释程序标记为脚本引擎。

注意 注意 默认情况下,IIS_WPG 组不具备启动 CGI 进程的权利。如果创建了新帐户并将其添加到 IIS_WPG 组以运行工作进程标识,还必须授予此帐户两种启动 CGI 进程的用户权利。这些用户权利是“调整进程的内存配额”和“替换进程级令牌”。要修改用户权利,请参阅 编辑本地安全设置编辑组策略对象上的安全设置

要点 要点 为了更好地预防恶意用户和攻击者的攻击,默认情况下没有将 IIS 安装到 Microsoft® Windows® Server 2003 家族的成员上。而且,当最初安装 IIS 时,该服务在高度安全和“锁定”模式下进行安装。默认情况下,IIS 只为静态内容提供服务 - 即,ASPASP.NET服务器端包含WebDAV 发布FrontPage® Server Extensions 功能只有在启用时才工作。如果在安装 IIS 之后未启用该功能,则 IIS 将返回 404 错误。您可以为动态内容提供服务,并通过 IIS 管理器中的 Web 服务扩展节点启用这些功能。同样,如果应用程序扩展未在 IIS 中进行映射,IIS 也会返回 404 错误。要映射扩展,请参阅设置应用程序映射。有关如何解决 404 错误(包括 404.2 和 404.3)、与新安装的 IIS 6.0 相关的问题或从低版本的 IIS 进行升级的详细信息,请参阅疑难解答

如果要开发新 CGI 应用程序,Microsoft 提供了几种选择。要加快执行速度,请考虑开发 Internet 服务器 API (ISAPI) 扩展。为便于开发,请考虑开发 ASP.NET 应用程序。详细信息,请参阅 ASP.NET

要点 要点 您必须是本地计算机上 Administrators 组的成员或者必须被授予了相应的权限,才能执行下列步骤。作为安全性最佳操作,请使用不属于 Administrators 组的帐户登录计算机,然后使用运行方式命令以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"

安装 CGI 应用程序

安装和配置 CGI 应用程序

  1. 为 CGI 程序创建目录。为了增加安全性,请将 CGI 程序与内容文件分开。没有必要将目录命名为 Cgi-bin,虽然您可以这么做。详细信息,请参阅使用虚拟目录
  2. 如果 CGI 程序是脚本,那么请获取并安装相应的脚本解释程序。例如,要运行 Perl 脚本,则需要具备 Perl 解释程序。Windows 操作系统不提供 Perl、SED 或 AWK 的版本。因此,您必须从第三方开发商处获取这些解释程序。
  3. 如果 CGI 程序为 .exe 文件,则应为目录提供执行权限。如果 CGI 程序是脚本,则既可为目录提供执行权限,也可为其提供脚本权限。详细信息,请参阅访问控制

    如果选择为目录提供脚本权限,则必须在该目录的属性中将脚本解释程序标记为脚本引擎。只有标记为脚本引擎的解释程序才能够在该目录中执行。可执行文件(.dll 和 .exe 文件)无法直接执行,即浏览器请求无法通过在 URL 中包含程序名来启动 Web 服务器中的可执行文件。通过启用“纯脚本”权限并选中“脚本引擎”复选框,可以将内容文件(例如 .htm 或 .gif 文件)作为 CGI 脚本安全地放在同一个目录中。内容文件可以在浏览器中显示,同时可以执行脚本,但是不能运行未授权的程序并且不能在浏览器中显示脚本命令。
  4. 对于 CGI 脚本,应在脚本的文件扩展名和脚本解释程序之间创建应用程序映射。

    IIS 可将文件扩展名映射到解释程序。例如,如果使用 Perl 脚本(该脚本存储在以 .pl 为扩展名的文件中),请将 .pl 扩展名映射到运行 Perl 脚本的程序。请将 .bat 和 .cmd 文件映射到命令解释程序 (Cmd.exe)。详细信息,请参阅设置应用程序映射
  5. 设置 NTFS 权限。如果使用 NTFS 访问权限,请验证所有需要运行该程序的用户都具有对该目录的执行权限。如果网站接受匿名用户,请确保匿名用户(IUSR_computername 帐户)具有执行权限。

IIS 支持大多数的标准服务器环境变量。

为更加安全起见,Web 服务器不将命令解释程序的特殊字符传递给映射的 CGI 应用程序。默认情况下,以下字符不能包含在调用 CGI 应用程序的 URL 中:

| ( , ; % < >


相关主题
(下列词语供“搜索”功能使用;它们将不显示在页面上)W3SVC

© 1997-2003 Microsoft Corporation。保留所有权利