下一步 上一步 目录

3. 安装步骤

3.1 硬件要求

关于数据库服务器的硬件要求,无法给出笼统的说法。这很大程度上取决于预期用户数量、应用程序类型、网络负载等等。在用户较少且网络流量较小的环境中,一台 i486 同等配置的机器,配备 16 MB 内存就完全足够了。Linux,这个操作系统,在资源利用方面非常高效,能够为同时运行各种应用程序提供足够的动力。当然,更快的处理器和更多的内存意味着更快的速度,但比处理器更重要的是内存容量。系统拥有的内存越多,在发生瓶颈时,它就越不需要将内存密集型进程交换到磁盘。

如果配备 32 MB 内存和 PCI 总线,搜索和排序操作就可以在很大程度上避免使用交换文件等,从而实现闪电般的速度。

本文描述的模型安装是在一台 IBM 686 (133Mhz) 机器上完成的,该机器配备了 32 MB 内存和 1.2 GB IDE 硬盘。假设安装过程从头开始,以下是必要的步骤列表。

3.2 软件要求

本文描述的软件可以从互联网或 CD-ROM 获得。使用了以下产品

3.3 安装操作系统

Linux 以 Red Hat Linux Distribution 4.2 的形式安装。为了成功安装,机器必须具有 DOS 可访问的 CD-ROM 驱动器、可引导的 CD-ROM 驱动器,或者必须按照 Linux CD 上的说明制作引导盘。

在安装过程中,用户可以选择和配置许多软件包。现在方便地选择以下项目

所有这些软件包都随 Linux 发行版提供。如果您现在不安装这些软件包,您仍然有机会稍后在 glint(图形化且直观的软件包安装管理器)的帮助下进行安装。安装这些软件包时,请务必以 root 用户身份登录。

本文的范围不包括描述网络安装和初始化过程。请查阅在线(manpages、HTML、texinfo)和印刷(Linux Bible 等)文档。

Red Hat 的安装过程非常成熟,除了通常的选择(如提供主机名等)之外,几乎不需要用户关注。一旦安装成功结束,系统基本上就可以使用了。

对于纯服务器而言,安装 X Window 系统不是强制性的,但它可以使本地访问和测试更加容易。X 安装过程可以通过多种程序完成;XF86Setup 提供了最广泛的自检功能,并且最不需要处理繁琐的细节(如视频时钟编程等)。唯一的要求是软件可以检测到视频适配器。廉价的加速图形适配器(如 S64UV+ 之前的基于 Trio S64 的显卡)通常可以“开箱即用”。

此时,我们假设我们的系统已启动并正在运行,并且 Apache、Perl 和 X Window 系统已成功安装。我们进一步假设所有标准结构(如文件和目录结构)都保持安装中定义的原样。最后但并非最不重要的一点是,我们保留主机名不变,并且目前接受名称 localhost。我们将使用此名称进行安装测试;一旦整个系统正常工作,就可以添加真实名称。请注意,网络设置还需要编辑 /etc/hosts 等文件。理想情况下,这应该使用提供给 root 用户的管理工具来完成。

3.4 http 服务器

Linux 提供的 http 服务器对人类来说被称为 Apache,对系统来说被称为 httpd。manpage (man httpd) 解释了如何安装和启动 http 守护进程(因此是 httpd),但是,如前所述,如果安装没有问题,则服务器应该正在运行。您可以验证目录树:必须有一个目录 /home/httpd/,其中包含三个子目录:../cgi-bin/../html/../icons/。在 ../html/ 中,必须有一个文件 index.html。稍后我们将操作或替换此文件为我们自己的 index.html。所有配置信息都存储在 /etc/httpd/conf/ 中。系统已预先配置好,如果安装没有错误,则无需进一步设置。

3.5 浏览器

Linux 主要有三种类型的浏览器可用:纯文本系统,如 Lynx;实验性和简单的浏览器,如 Arena(免费!);以及商业浏览器,如 Netscape(共享软件!),支持 Java。虽然 Lynx 和 Arena 随 Linux 提供,但 Netscape 必须从其他来源获取。Netscape 以 ix86 架构 Linux 的预编译二进制文件的形式提供,并在解压存档后立即“开箱即用”。

配置 Lynx

一旦启动 Lynx,它将查找“默认 URL”,如果系统没有永久的互联网访问权限,这通常意义不大。为了更改默认 URL(以及许多其他配置细节),系统管理员应编辑 /usr/lib/lynx.cfg。该文件很大,大约 57000 字节,并且偶尔包含相互矛盾的信息。它声明自己的主目录为 /usr/local/lib/。在顶部不远处有一行以 STARTFILE 开头。我们将此行替换为以下条目:STARTFILE:http://localhost,并确保不插入空格等。


# STARTFILE:http://www.nyu.edu/pages/wsn/subir/lynx.html
STARTFILE:http://localhost

保存文件后,如果启动 Lynx 时不带参数,则现在应该显示我们的 index.html 文档。

配置 Arena

Arena 在不带参数启动时,首先查找自己的默认 URL。此 URL 硬编码到可执行文件中,但可以被环境变量 WWW_HOME 覆盖。系统管理员可以在 /etc/profile 中添加一行 WWW_HOME="http://localhost"。然后必须导出该变量,可以通过单独的语句 (export WWW_HOME) 或将 WWW_HOME 附加到现有的 export 语句。


WWW_HOME="http://localhost"
export WWW_HOME

重新启动登录 shell 后,新的默认 URL 现在在系统范围内为 Arena 所知。

安装和配置 Netscape

Netscape 是一款商业产品,因此不包含在 Linux 发行版中。它可以从互联网下载或从 CDROM 上的软件集合中获得。Netscape 以预编译二进制文件的形式提供,适用于每个重要的硬件平台。为了便于安装,最好创建一个目录 /usr/local/Netscape/,在其中解压存档。文件可以保留在原位(Java 库除外:请按照 Netscape 二进制文件附带的 README 文件中的说明进行操作),并且只需通过发出以下命令在 /usr/local/bin/ 中创建一个软链接即可

# ln -s /usr/local/Netscape/netscape .
/usr/local/bin/ 内部。

Netscape 现在可以使用了,可以通过“Options”菜单进行配置。在“General Preferences”中,有一个“Appearance”卡,其中包含“Home Page Location”条目。在此处输入 http://localhost,并且不要忘记在退出 Netscape 之前保存选项(通过“Options”---“Save Options”)。在下次启动时,Netscape 现在将显示 Apache 的“主页”。

3.6 Apache 和浏览器的协同工作

现在您可以对浏览器和 http 服务器进行第一次真正的测试:只需启动任何可用的浏览器,就会弹出 Apache: Red Hat Linux Web Server 页面。此页面显示文件位置和 http 服务器安装的其他基本信息。如果未显示此页面,请检查上述文件是否就位以及浏览器配置是否正确。在再次启动浏览器之前,请关闭已编辑的配置文件。如果所有文件都就位并且浏览器似乎配置正确,则检查机器的网络设置。可能是主机名与配置中输入的不同,或者网络设置本身不正确。至关重要的是,/etc/hosts 至少包含一行如下内容


127.0.0.1               localhost localhost.localdomain

这意味着您可以本地连接到您的机器。可以通过发出任何需要主机名作为参数的网络敏感命令来验证这一点,例如 telnet localhost(前提是已安装 telnet)。如果这不起作用,则必须先验证网络设置,然后才能继续执行主要任务。

3.7 数据库引擎及其安装

安装数据库只需要比之前的安装步骤稍多的准备工作。有几种 SQL 数据库引擎可用,它们具有不同的运行时和管理要求,其中可能最直接的系统之一是 msql,即 David Hughes 的“Mini-SQL”。msql 是共享软件。根据使用的版本,商业站点收费 250.00 美元及以上,私人用户收费 65.00 美元及以上,只有教育机构和注册的非营利组织可以免费使用此软件。请注意,确切的数字在数据库文档的许可说明中提供。此处给出的数字仅作为粗略的指示。

这里有几句话说明作者为什么选择 msql。首先,有个人经验。在搜索数据库引擎时,作者发现 msql 是最容易安装和维护的,并且它提供了足够的 SQL 语言覆盖范围来满足一般需求。只有在写下这些文字时,作者才在 Alligator Descartes 的 DBI FAQ(perl 数据库接口 FAQ)中发现了以下赞扬之词

从当前作者的角度来看,如果数据集相对较小,表少于 100 万行,并且给定数据库中的表少于 1000 个,那么 mSQL 是解决您问题的完全可以接受的方案。这个数据库非常便宜,非常健壮,并且有出色的支持。[...]

Msql 现在有两个版本可用,msql-1.0.16 和 msql-2.0.1,它们在性能(在小型项目中不明显)和随附软件(较新版本附带更多工具、自己的脚本语言等)方面有所不同。我们将描述 msql 的两个版本,因为它们的安装在一些方面有所不同。

安装 msql-1.0.16

msql 以源代码和带有 ELF 支持的编译可执行文件的形式提供。使用 ELF 二进制文件使安装变得容易,因为存档文件 msql-1.0.16.ELF.tgz 包含完整的绝对目录树,因此从 / 解压缩时会正确生成所有目录。

如果您决定自己编译 msql-1.0.16 并且打算使用 MsqlPerl 包而不是 DBI 接口(请参阅稍后关于两者之间差异的详细讨论),那么请做好准备,MsqlPerl 可能会在测试套件期间抱怨 msql 内部的某些指令失败。在这种情况下,可能需要一个补丁,该补丁在 MsqlPerl 文档(文件 patch.lost.tables)中进行了描述。值得注意的是,这需要在线 1400 之后在 msqldb.c 中包含三行,该行内容为 entry->def = NULL;

        *(entry->DB) = 0;
        *(entry->table) = 0;
        entry->age = 0;
代码片段现在应该如下所示
        freeTableDef(entry->def);
        safeFree(entry->rowBuf);
        safeFree(entry->keyBuf);
        entry->def = NULL;
        *(entry->DB) = 0;
        *(entry->table) = 0;
        entry->age = 0;

编译 msql 涉及几个步骤。解压源代码存档后,需要构建目标目录。这可以通过执行以下命令来完成

# make target
如果成功,系统将回复
Build of target directory for Linux-2.0.30-i486 complete
现在您必须切换到这个新创建的目录并运行
# ./setup
命令。./ 序列是必要的,以确保真正执行的是此目录中的 setup 命令,而不是另一个恰好具有相同名称的命令。然后,系统将询问您有关源目录位置以及是否需要 root 安装的问题。回答这些问题后,系统应运行一系列测试,检查可用的软件(编译器、实用程序等),最后显示
Ready to build mSQL.

You may wish to check "common/site.h" although the defaults should be
fine.  When you're ready, type  "make all" to build the software
我们输入
# make all
如果一切按预期进行,我们将看到
make[2]: Leaving directory `/usr/local/Minerva/src/msql'
<-- [msql] done       

Make of mSQL complete.
You should now mSQL using make install

NOTE : mSQL cannot be used free of charge at commercial sites.
       Please read the doc/License file to see what you have to do.

make[1]: Leaving directory `/usr/local/Minerva/src'

然后必须通过在 /usr/local/bin/ 中创建软链接,使所有二进制文件对搜索路径可见。切换到该目录并发出命令

# ln -s /usr/local/Minerva/bin/* .
之后链接将被正确设置。

测试 msql-1

安装完成后,现在可以测试数据库是否正常工作。在执行任何其他操作之前,必须启动服务器守护进程。拥有 root 权限的系统管理员发出命令

# msqld &
(不要忘记添加 &,否则 msql 将不会在后台运行。)之后,屏幕上会出现以下消息
mSQL Server 1.0.16 starting ...

Warning : Couldn't open ACL file: No such file or directory
Without an ACL file global access is Read/Write

此消息告诉我们,到目前为止一切正常,因为我们没有设置任何访问限制。目前,从 shell 内部启动 msql 守护进程就足够了,但稍后我们可能希望系统启动时自动为我们执行此命令。然后必须在合适的 rc.d 脚本中提及该命令。只有现在,管理员才能发出第一个真正的数据库命令

# msqladmin create inventur
msql 回复说 Database "inventur" created.。作为进一步的证明,我们发现目录 /usr/local/Minerva/msqldb/ 现在包含空的子目录 ../inventur/。我们可以使用管理工具操作新创建的数据库;这些过程都在 msql 文档中详细介绍。

安装 msql-2.0.1

现在有一个更新、更强大的 Hughes 的 mSQL 服务器版本可用,其安装在一些方面有所不同。从头开始安装 msql-2 涉及以下步骤。将存档复制到您的解压点,例如 /usr/local/msql-2/,然后解压存档

# tar xfvz msql-2.0.1.tar.gz 

切换到安装树的根目录并发出

# make target

切换到 targets 并查找您的机器类型。应该有一个新的子目录 Linux-(您的版本)-(您的 cpu)/。切换到该目录并启动位于此处的设置工具

# ./setup

还有一个文件 site.mm 可以编辑。也许您已经习惯了目录名 /usr/local/Minerva/ 并想保留它?在这种情况下,将 INST_DIR=... 行更改为您期望的目标目录。否则,保持一切不变。

现在您可以开始构建数据库

# make
# make install

如果一切顺利,我们将看到类似以下的消息

[...]

Installation of mSQL-2 complete.

*********
**   This is the commercial, production release of mSQL-2.0
**   Please see the README file in the top directory of the
**   distribution for license information.
*********

在所有内容都正确安装后,我们必须处理管理细节。在这里,msql-1 的真正区别开始了。首先,创建一个用户 msql,负责数据库管理。

# adduser msql

然后我们必须通过执行以下命令将 mSQL 目录中的所有所有权更改为 msql

# cd /usr/local/Minerva
# chown -R msql:msql *

然后我们通过执行以下命令在 /usr/local/bin/ 中为所有数据库二进制文件创建软链接

# ln -s /usr/local/Minerva/bin/* .

测试 msql-2

我们现在可以通过发出命令 msql2d & 来启动数据库服务器,应该得到类似于以下内容的响应

Mini SQL Version 2.0.1
Copyright (c) 1993-4 David J. Hughes
Copyright (c) 1995-7 Hughes Technologies Pty. Ltd.
All rights reserved.

        Loading configuration from '/usr/local/Minerva/msql.conf'.
        Server process reconfigured to accept 214 connections.
        Server running as user 'msql'.
        Server mode is Read/Write.

Warning : No ACL file.  Using global read/write access.

这看起来很完美。数据库已编译并就位,我们现在可以继续处理 perl 模块,因为这些模块部分依赖于正常工作的数据库服务器进行测试。

顺便说一句,现在也是打印 msql-2.0.1 随附的完整手册的好时机

# gzip -d manual.ps.gz
# lpr manual.ps

我们现在可以继续构建接口,但最好保持新创建的 SQL 服务器运行,因为这可以使测试接口库稍微简单一些。

3.8 接口选择:DBI/mSQL、MsqlPerl 和 Lite

骆驼书(权威的 perl 文档)中经常引用一句谚语,即在使用 perl 时,实现结果的方法不止一种。唉,这对于我们的模型应用程序也适用。基本上,有三种方法可以通过 CGI 访问 msql 数据库。首先要问的问题是是否使用 perl。如果我们使用 perl(本文重点关注),那么我们仍然可以在两种完全不同的接口模型之间进行选择。除了使用 perl,我们还可以使用 msql 自己的脚本语言,称为 Lite,它相当简单,并且是 C 的一个近似克隆。

DBI 和 DBD-mSQL

在撰写本文时,使用 perl 的通用数据库接口 DBI 是首选方法。DBI 有几个优点:它使用单个命令集为多个商业数据库提供统一的访问控制。给定系统上使用的实际数据库然后通过驱动程序联系,该驱动程序有效地向程序员隐藏了该数据库的特性。正因为如此,使用 DBI 可以在不同制造商的不同数据库之间实现平滑过渡。在一个脚本中,甚至可以联系多个不同的数据库。有关详细信息,请参阅 DBI-FAQ。但是,有一个缺点:DBI 接口仍在开发中,并且版本号快速增长(有时更新在不到一个月的时间内发生)。同样,各个数据库驱动程序也经常更新,并且可能依赖于特定版本的数据库接口。首次安装的用户应坚持本文中给出的版本号,因为其他版本可能会导致编译和测试问题,这些问题的故障排除并非胆小者所为。

MsqlPerl

MsqlPerl 是一个用于从 perl 脚本直接访问 msql 的库。它绕过了 DBI 接口,并且相当紧凑。虽然它可以与 msql 的两个版本一起正常工作,但不再提倡使用它,而是倾向于使用通用的 DBI 接口。尽管如此,在给定的安装中,它可能被证明是首选的接口,因为它体积小且易于安装。值得注意的是,与 DBI 和特定数据库驱动程序的交互相比,它的版本依赖性更少。

msql 自己的脚本语言:Lite

最后但并非最不重要的一点是,msql-2 附带了自己的脚本语言:Lite。该语言是 C 的近亲,去除了其怪异之处,并添加了类似 shell 的功能(在某种程度上,有点像非常专业的 perl 版本)。Lite 是一种简单的语言,并在 msql-2 手册中有详细文档。msql-2 包还附带了一个使用 Lite 的示例应用程序。

我们在这里不会描述 Lite,因为它文档齐全,但相当特定于 msql-2,并且因为假设本文的读者对 perl 有基本的兴趣和基本的了解。尽管如此,强烈建议仔细研究 Lite:很可能 Lite 在独占 msql-2 环境(意味着不涉及其他数据库)中由于其简单性和直观的概念而提供了最佳解决方案。

3.9 采用通用方法:DBI 和 DBD-msql

我们假设 perl 已在系统设置期间或通过上述软件包管理器安装。此处不再提供更多详细信息。尽管如此,我们首先测试我们的 perl 版本是否是最新的

# perl -v

perl 应该回复以下消息

This is perl, version 5.003 with EMBED
        Locally applied patches:
          SUIDBUF - Buffer overflow fixes for suidperl security

        built under linux at Apr 22 1997 10:04:46
        + two suidperl security patches

Copyright 1987-1996, Larry Wall
[...]
到目前为止,一切都很好。下一步包括安装用于通用数据库的 perl 库 (DBI)、msql 驱动程序 (DBD-mSQL) 和 CGI。CGI 驱动程序在任何情况下都是必需的。以下存档是必需的
  1. DBI-0.81.tar.gz
  2. DBD-mSQL-0.65.tar.gz
  3. CGI.pm-2.31.tar.gz(或更高版本)

这里有必要给初学者一个警告:此处描述的测试安装在使用完全这些版本号的软件时可以正常工作,而其他版本的组合以一种或另一种方式失败。调试有缺陷的版本组合对于那些不太熟悉接口的调用约定等内部细节的人来说是很难的。有时只是在执行相同任务时重命名了一个方法,但有时内部结构会发生重大变化。因此,再次强调,如果您想安全起见,即使您发现版本号在此期间有所增加,也请坚持使用这些版本号。这些接口的频繁更新是规则而不是例外,因此在安装此处指示版本以外的其他版本时,您应该真正预料到会出现问题。

非常重要的是,用于 mSQL 的数据库驱动程序 (DBD-mSQL) 必须在通用接口 DBI 之后 安装。

我们首先创建目录 /usr/local/PerlModules/,因为保持原始 perl 目录树不变非常重要。我们也可以选择不同的目录名,因为该名称完全不重要,不幸的是,在各种 perl 模块的 README 文件中并没有真正提到这一点。将上述存档复制到 /usr/local/PerlModules/ 后,我们解压它们,执行以下命令

# tar xzvf [archive-file]

针对三个存档中的每一个。不要忘记向 tar 提供真实的存档名称。这三个模块的安装过程基本上是标准化的;此处仅重现显示各个软件包重要步骤的屏幕消息。

安装 perl 的数据库接口 DBI

必须始终在安装特定的数据库驱动程序之前安装数据库接口。解压 DBI 存档会创建目录 /usr/local/PerlModules/DBI-0.81/。切换到该目录。那里有一个 README 文件(您应该阅读它)和一个 perl 特定的 makefile。现在发出命令

# perl Makefile.PL

系统应该回复一条冗长的消息,其中最重要的部分如下所示:

[...]
MakeMaker (v5.34)
Checking if your kit is complete...
Looks good
        NAME => q[DBI]
        PREREQ_PM => {  }
        VERSION_FROM => q[DBI.pm]
        clean => { FILES=>q[$(DISTVNAME)/] }
        dist => { DIST_DEFAULT=>q[clean distcheck disttest [...]
Using PERL=/usr/bin/perl

WARNING! By default new modules are installed into your 'site_lib'
directories. Since site_lib directories come after the normal library
directories you MUST delete old DBI files and directories from your
'privlib' and 'archlib' directories and their auto subdirectories.

Writing Makefile for DBI
正如程序所说,这看起来不错,我们可以继续下一步
# make
如果没有错误消息发生(屏幕上转储的详细协议不是错误消息),我们使用以下命令测试新安装的库
# make test
注意输出中的以下行(您可以始终使用 [Shift]-[PgUp] 向后滚动)
[...]
t/basics............ok
t/dbidrv............ok
t/examp.............ok
All tests successful.
[...]
DBI test application $Revision: 1.20 $
Switch: DBI-0.81 Switch by Tim Bunce, 0.81
Available Drivers: ExampleP, NullP, Sponge
ExampleP: testing 2 sets of 5 connections:
Connecting... 1 2 3 4 5 
Disconnecting...
Connecting... 1 2 3 4 5 
Disconnecting...
Made 10 connections in  0 secs ( 0.00 usr  0.00 sys =  0.00 cpu)

test.pl done
最后一步是将所有文件安装到其正确的目录中。以下命令将处理它
# make install
没有其他任务了。如果由于某种原因安装失败并且您想重做它,请不要忘记发出
# make realclean
首先。这将删除先前安装的陈旧残留物。您还可以通过复制屏幕内容(显示为缩写)来删除已安装的文件
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/DBI/DBIXS.h
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/DBI/DBI.so
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/DBI/DBI.bs
[...]
Writing /usr/lib/perl5/site_perl/i386-linux/auto/DBI/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.003/perllocal.pod
到一个文件中,将每个 Installing 替换为 rm。假设您将文件命名为 uninstall,那么您可以执行以下命令
# . uninstall
这将删除最近安装的文件。

perl 的 msql 驱动程序 DBD-mSQL

msql 驱动程序只能在成功安装 perl 的通用数据库接口之后安装。

基本步骤与上面相同;因此首先执行

# perl Makefile.PL

在这里,系统应该回复一个紧急警告,要求阅读随附的文档。然后它将检测到 msql 所在的位置,并询问您使用的版本

$MSQL_HOME not defined. Searching for mSQL...
Using mSQL in /usr/local/Hughes

 -> Which version of mSQL are you using [1/2]? 
说明您的正确版本号。接下来会出现很多行文本。注意以下几行
Splendid! Your mSQL daemon is running. We can auto-detect your configuration!

I've auto-detected your configuration to be running on port: 1114

您现在可以通过执行以下命令测试驱动程序

# make test
同样,接下来是冗长的输出。如果它以
Testing: $cursor->func( '_ListSelectedFields' ). This will fail.
        ok: not a SELECT in msqlListSelectedFields!
Re-testing: $dbh->do( 'DROP TABLE testaa' )
        ok
*** Testing of DBD::mSQL complete! You appear to be normal! ***
结尾,那么您就安全了,可以通过执行以下命令安装您的驱动程序
# make install
您现在已准备就绪,可以跳过下一段。

3.10 MsqlPerl 接口

如果您决定使用独有的 MsqlPerl 接口,则不需要通用数据库驱动程序,只需要 MsqlPerl-1.15.tar.gz,因为如前所述,MsqlPerl 提供了 perl 和数据库服务器之间的直接接口,而无需使用 DBI 接口。安装和测试非常简单。

在执行 perl Makefile.PL 后,可以启动 make 实用程序。首先,您必须回答 mSQL 所在位置的问题。如果它位于 /usr/local/Minerva/,则可以确认默认答案。

然后执行 make test。在执行此操作之前,您必须确保您有一个名为 test 的数据库,并且您对其具有读写权限。这可以通过以下方式完成

# msqladmin create test

3.11 perl 的 CGI 库

安装 perl 的 CGI 部分是三个步骤中最简单的。按给定的顺序执行以下命令,一切就完成了

# perl Makefile.PL
# make 
# make install

与之前的驱动程序不同,此接口没有测试选项 (# make test),而其他模块在任何情况下都应该进行测试。

还会创建一个包含 CGI 示例脚本的子目录。您可以将此目录的内容复制到 /home/http/cgi-bin/ 中,并使用浏览器来试验这些脚本。

3.12 安装清单

我们按以下顺序完成了以下步骤

  1. 安装带有网络支持的 Linux
  2. 安装 http 服务器,例如 Apache
  3. 安装浏览器,例如 Arena、lynx 或 Netscape
  4. 安装 SQL 服务器,例如 msql
  5. 安装合适的 perl SQL 接口
  6. 安装 CGI 文件

最后,您可以进行一些清理工作。msql 和 perl 模块的所有源代码树都可以安全删除(但是,您不应删除您的存档文件!),因为二进制文件和文档现在都位于不同的目录中。


下一步 上一步 目录