Sun Java System Web Server 7.0 管理员指南

CGI 概述

公共网关接口 (Common Gateway Interface, CGI) 程序可以使用许多编程语言进行定义。在 UNIX/Linux 计算机上,您可能会发现 CGI 程序被编写成 Bourne shell 或 Perl 脚本。


注 –

在 UNIX/Linux 中,具有附加的 CGIStub 运行进程,服务器可使用这些进程来帮助 CGI 执行。只有在首次访问 CGI 期间才创建这些进程。进程数量的变化取决于服务器上的 CGI 负荷。请不要删除这些 CGIStub 进程。服务器停止时,它们将消失。


有关更多信息,请参见联机的《Sun Java System Web Server Performance Tuning and Sizing Guide》中有关 MinCGIStubMaxCGIStubCGIStubIdleTimeout 的讨论。

在 Windows 计算机上,您可能会发现 CGI 程序是用 C++ 或批处理文件编写的。对于 Windows 而言,利用基于 Windows 的编程语言(如 Visual Basic)编写的 CGI 程序将使用不同的机制来操作服务器。这些程序被称为 Windows CGI 程序。


注 –

要运行命令行实用程序,需要手动设置 Path 变量以包括 server_root/bin/https/bin


不管使用什么编程语言,所有 CGI 程序均以同样的方式接受和返回数据。有关编写 CGI 程序的更多信息,请参见以下信息源:

下图介绍了如何在 Web Server 7.0 中处理 CGI 请求:

Sun Java System Web Server 7.0

在服务器计算机上存储 CGI 程序的方法有两种:

如果需要,您可以同时启用两个选项。

两种实现方法各有优点。如果只允许一组特定的用户添加 CGI 程序,请将 CGI 程序保留在指定的目录中并限制对这些目录的访问。如果允许任何可以添加 HTML 文件的用户都能添加 CGI 程序,请使用替代文件类型。用户可以将 CGI 文件和 HTML 文件保留在相同的目录中。

如果选择目录选项,服务器会尝试将该目录中的所有文件都视为 CGI 程序。通过使用相同的标记,如果选择文件类型选项,则服务器会尝试将具有 .cgi.exe.bat 文件扩展名的所有文件都作为 CGI 程序来处理。如果某个文件具有其中一个扩展名但不是 CGI 程序,用户试图访问时就会出现错误。


注 –

默认情况下,CGI 程序的文件扩展名为 .cgi.exe .bat。但是,您可以通过修改 MIME 类型文件来更改哪些扩展名表示 CGI 程序。要执行此操作,请选择“服务器首选项”选项卡并单击“MIME 类型”链接。