除了 CERN 的 http 守护进程之外,另一种选择是国家超级计算应用中心的 http 守护进程,它被设计得更小、更快。
通过匿名 FTP 连接到 ftp.ncsa.uiuc.edu,然后在目录 /Web/httpd/Unix/ncsa_httpd/httpd_1.3 中查找。或者,通过 ftp 连接到 sunsite.unc.edu,然后在 /pub/packages/ infosystems/WWW/servers/ncsa_httpd/httpd_1.3 中查找。在二进制模式下,检索文件 httpd_source.tar.Z。
你可以将此文件放在任何你想要的地方;例如 /usr/src/ncsa。当你解压缩和解 tar 这个文件时,它会将其内容放入一个 httpd_1.3 子目录中。
你可能需要修补一个最近发现的安全漏洞。ftp 到 cert.org,然后使用 mget 命令获取 /pub/ncsa_advisories/CA-95:04*。如果官方源码中尚未进行这些修改,则执行所需的两个简单的源代码更改。
现在可以考虑已安装文件将要去的位置。创建一个目录 /usr/local/etc/httpd,并在其下创建三个子目录:conf、htdocs 和 logs。根据你机器的安全策略设置它们的访问权限。我们稍后会填充这些目录。
将你的注意力返回到 /usr/src/ncsa/httpd_1.3 目录。使用 cd 命令进入 src 目录并编辑 Makefile。此文件中不需要进行太多更改。你将看到各种体系结构的 AUX_CFLAGS 行的一个很好的选择。找到包含以下内容的行
-DLINUX 并取消注释。如果你希望你的 httpd 使用 486 专用的优化,你可以将添加到此行,但这并不是必须的。
保存 Makefile 并执行 make 命令。你需要获取一个 C 编译器,可能是 gcc,以及最新的库。我使用了 gcc 2.5.8 和 libc.so.4.5.26,并且 httpd 在未修改的情况下构建并运行。
将生成的 httpd 可执行文件移动到 /usr/local/bin。
现在该再次查看 /usr/local/etc/httpd 了。你需要将文件从 /usr/src/ncsa/httpd_1.3/conf 复制到 /usr/local/etc/httpd/conf。确保复制 mime.types、srm.conf、httpd.conf 和 access.conf,并在执行此操作时删除它们的 -dist 后缀。唯一需要修改的是 httpd.conf,它是整体配置文件。仔细检查 httpd.conf 中的 ServerType 是否设置为 standalone;这意味着 httpd 将自行启动,而不是由 inetd 启动。你还应该将你的电子邮件地址作为 ServerAdmin 的值,并填写此机器的名称作为 ServerName。
srm.conf 文件控制客户端连接到你的服务器时看到的名称空间。access.conf 文件管理全局访问控制。最后,mime.types 告诉你的服务器如何将文件名扩展名映射到 MIME 文档类型。(这不要与 Web 客户端用于将 MIME 文档类型映射到外部查看器程序的 .mailcap 文件混淆。)这三个文件都不需要修改。
你的 http 守护进程会将有用的访问日志填充到你的 /usr/local/etc/httpd/logs 目录中(如果你的站点正在运行 DNS,这将非常有用)。确保该目录存在,否则将不会保存日志。
有趣的目录是 /usr/local/etc/httpd/htdocs。这是你放置 HTML 文档以及它们指向的超媒体内容的地方。将你的顶级文档命名为 index.html,这样客户端就不必记住你站点 URL 末尾的愚蠢文件名。记住,最好的 URL 是不需要任何人写下来的 URL。
是时候启动你的守护进程了!只需执行以下操作
/usr/local/bin/httpd
如果要在默认端口 (80) 提供 http 服务,则需要以 root 身份执行此操作,但你的守护进程仍将使用 httpd.conf 中指定的用户身份运行。
将一些代码放入你的启动脚本之一,例如 /etc/rc.d/rc.local,以便在重新启动时重新启动守护进程
if [ -x /usr/local/bin/httpd ]; then /usr/local/bin/httpd fi
FTP 存档上的 http_docs.tar.Z 文件包含大量 HTML 格式的文档,你需要这些文档来了解诸如 CGI 设置或高级目录列表等高级主题。
就这样!现在你可以返回并通过重新编辑配置文件根据需要进行自定义。如果这样做,请记住通过向守护进程发送挂断信号来重新启动它,killall -HUP httpd.
Brian Rice 是 K Computing 的技术人员,K Computing 是一家全国性的 Unix 和 Internet 培训公司。