ICE 是 Ingres 的专有 Web 网关。 基本上,它是一个 CGI 程序,可以通过原生的 Ingres API 与 Ingres 服务器通信。ICE 支持几个宏命令,您可以将它们嵌入到 HTML 文档中。在渲染此类文档时,ICE 首先执行宏,然后输出生成的网页。
在其他平台上,您可以将 ICE 配置为 Spyglass Web 服务器的服务器扩展,该服务器与 Ingres 捆绑在一起。Ingres 的 Linux 版本不包含 Spyglass。因此,在本节中,我将向您展示如何在世界上最受欢迎的 Web 服务器 Apache 下将 ICE 设置为独立的 CGI 程序。
您需要 ICE 才能运行的 ingvalidpw 程序。 请参阅关于如何安装它的 ingvalidpw 小节。
构建、安装和配置 Apache 超出了本 HOWTO 的范围。(如果您要将数据库放在 Web 上,无论使用 ICE 还是其他方式,最好学习 Apache。)
我建议下载最新稳定版本的 Apache 源代码并自行构建,以获得最大的灵活性。 我还建议您保留一个单独的 Apache 安装,专门用于 ICE。
在本小节中,我仅介绍从 ICE 的角度来看重要的 Apache 参数。
需要注意的事项
已安装的软件应归 ingres 用户所有。 这并非绝对必要,但会使事情变得更容易。
将 mod_env 模块编译到服务器中,最好是静态编译(除非必须,否则不要使用 DSO:它们会降低 Apache 的速度)。
编译并安装 Apache 后,在httpd.conf:
Port 8000 -- must be greater than 1023 User ingres -- all server processes run as ingres Group ingres -- the ingres user's group PassEnv II_SYSTEM PassEnv LD_LIBRARY_PATH |
中设置以下参数httpd.conf必须将最后两行添加到。 这些变量将从 ingres 用户环境传递到由 Apache 启动的 CGI 程序(特别是 ICE 的两个可执行文件 iceinst 和 ice)的环境。
现在您可以配置 ICE 及其教程。 您可以使用浏览器和 iceinst 程序来执行此操作。 让我们假设您的 CGI 目录是/opt/ingres/apache/cgi-bin并且 Apache 正在监听端口 8000。让您的机器名称为 ingserv1。 然后您可以按以下方式启动 iceinst
$ iceinst -d/opt/ingres/apache/cgi-bin -u/cgi-bin -shttp://ingserv1:8000 -b/opt/netscape/netscape |
选项-d是 CGI 目录的完整路径,-u是此目录在站点中的地址,-s是服务器的 Internet 地址,而-b是浏览器的完整路径。 如果您省略选项-b并编写-remote代替,则 iceinst 将不会尝试启动浏览器。 然后您可以从另一台计算机配置 ICE,将浏览器定向到 http://ingserv1/cgi-bin/iceinst。
程序首先要求提供II_SYSTEM的值。 然后您应该访问每个屏幕并设置其中显示的所有参数。 让 iceinst 安装动态 SQL 教程和宏处理器教程。 这些教程展示了通过应用程序和数据库(默认为 icedb)使用 ICE 的方法。
重要的是在 Apache 的DocumentRoot下创建一个目录,ICE 可以在其中存储它为客户端请求创建的输出。 在您创建此目录并在 iceinst 中指定其名称之前,ICE 将不会启动。
完成每个表单后,选择安装选项。 如果您已正确设置所有内容,则将配置 ICE 并安装教程。 ICE 即可使用。