HyperNews 简介
尽管人们对 Web 抱有各种兴奋之情——有些是合理的,有些是夸大的——但仍然可以认为 Usenet 是对通信最重要的、真正原创的互联网贡献。幸运的是,我们从来不必在两者之间做出选择——现在,随着 Daniel LaLiberte 的 HyperNews 包的可用性,我们可以将两者的最佳功能集于一处。
HyperNews “基础文章”是一个 WWW 页面,末尾带有一个类似新闻组的片段(参见图 1——事实上,请在阅读时多次查看)。HyperNews 片段按主题组织,带有级联的回复主题行。此外,回复可以以纯文本、“智能文本”(为您进行一些格式化)、URL 或 HTML 的形式输入。因此,任何回复的正文都可以包含另一个网页,可以作为其自身的迷你网页运行,或者仅仅包含类似 Usenet 的键入声明。
当您访问 HyperNews 文章并查看回复时,您可以(取决于本地访问设置)添加您自己的回复,开始新的主题,或以各种方式在主题和回复之间导航。您添加的任何回复都可以在最终发布之前进行预览——事实上,必须进行预览——这样您就有机会查看您的回复将是什么样子,以及如果您包含超链接,是否正确。
检索 HyperNews 基础文章就像检索任何其他网页一样。初始访问通常通过 “get” 脚本,因此典型的 URL 看起来像 union.ncsa.uiuc.edu/HyperNews/get/hypernews.html。
这个示例 URL 实际上指向 HyperNews 主页,如果您有兴趣运行该软件包,它不仅是必不可少的,而且还提供了 HyperNews 实际运行的一个非常壮观的示例。正如您访问后将看到的,在给定的站点可以有任意数量的基础文章——毕竟,它们是网页。此主页还展示了 HyperNews 扩展可以在网页的生命周期中扮演的角色范围。“错误”文章中的回复部分可以承担页面的大部分内容(其中寻求的大部分信息可能驻留在回复部分);或者充当相对低调的留言簿式草稿本;或者介于两者之间的任何内容。
当您访问 HyperNews 文章时,您看到的基本是一个网页,底部有一个回复轮廓——可能很长。在幕后,HyperNews 基础文章是一个虚拟主页,由构成 HyperNews 发行版的 Perl 脚本套件按需构建。它由以下四个部分组成,每个部分都可以通过各种方式配置,如图 2所示。
将基础文章分成几个逻辑组件使您可以很好地控制其外观和感觉。每个基础文章都有一个关联的 .html.urc 文件,其中指定了页眉、页脚和正文 URL。这使得维护和测试相对容易——可能不比任何其他非平凡的 Web 安装容易,但很高兴这些部分是分开的,并且脚本在理解它们方面做了大部分工作。
在大多数情况下,正文包含页面真正“关于”的内容。这里没有必要给出示例——它是一个网页,包含所有隐含的内容。在创建基础文章的过程中,您可以通过 HTML、纯文本或“智能文本”手动输入正文;或者您可以指定 URL。如果您输入文本或 HTML,HyperNews 会为您创建一个 name-body.html 文件,您以后可以编辑该文件。如果您为正文指定单个 URL,则您的基础文章将由检索该 URL 组成,该 URL 位于 HyperNews 页面的其他元素之间,如图 2 所示。
页眉和页脚可以在安装范围的配置文件 hnrc 中指定,和/或在相关 .html.urc 文件中为一个或多个基础文章单独指定。hnrc 中的安装范围的页眉和页脚规范可以由文本、URL 或 HTML 组成。(我建议不要在页眉规范中放置完整的 HTML——它不太可能是必要的,并且它并不总是与最终与其共享空间的图标网格对齐。)每个文章的页眉和页脚规范由 URL 组成,这些 URL 的来源将被检索并分别放置在正文上方和回复下方。页眉和/或页脚也可以留空。
页眉和页脚都会传播到回复;也就是说,对文章的每个回复(以及对回复的回复等)都包含并显示其基础文章的页眉和页脚。这意味着您可能应该保持页眉和页脚的大小较小,并且它们应该与每个回复相关,或者至少不引人注目(即,这可能不是放置站点范围的问候消息的正确位置)。
免责声明:我了解足够的知识来保持我的系统尽可能安全,但我不是安全专家。如果您安装 HyperNews,您应该熟悉所有关于安全性的可用信息,并确保您对您的特定设置的稳健性感到满意。
作为 HyperNews 管理员,您可以控制谁可以做什么。“谁”在这里有三个可能的值:管理员、成员和任何人。“什么”包括创建新的基础文章;阅读文章和回复;以及添加、删除和/或移动回复。您几乎可以在访问级别和可用活动之间混合和匹配限制。例如,您可能希望授予对您的文章和回复的无限制读取访问权限,但将回复添加限制为成员。
在所有可能性中,您都不希望除管理员(也就是您)以外的任何人创建基础文章——否则,您可能会在一天早上醒来发现您的机器已成为 Barry Manilow 粉丝俱乐部的哨所。然而,在添加回复方面,您可能希望采取更开放的政策。完全开放的回复添加让我担心的一件事是,可以使用别人的姓名和电子邮件地址签名。该人将通过电子邮件收到确认通知(如果配置了该选项,默认情况下是配置的);但是,如果数百名网络冲浪者已经阅读了非法署名的帖子,这可能是一种冷淡的安慰。另一方面,要求会员资格可能会阻止发布,至少对于随意访问者来说是这样,因为它需要花费时间填写表格。
我将在以下部分描述访问和安全性的一些其他方面。
HyperNews 发行版是一套 Perl 5 CGI 脚本。我在这里遇到了一些障碍——我不得不重新编译 Perl 以消除一些与读取配置文件有关的奇怪且令人无法接受的行为。(对我来说,它为什么会发生仍然是个谜。)Perl 5.001m 似乎是运行 HyperNews 的首选 Perl 版本。
我已经在使用相当规范的目录结构的两台机器上安装了 HyperNews。主要步骤是
cd /usr/local/lib/httpd/cgi-bin
cp HyperNews1.version.tgz .
tar -xvzf HyperNews1.<version>.tgz
version 将类似于 1.9B5.5。这将创建子目录 HyperNews1。version。安装说明建议将此目录移动到 HyperNews
mv HyperNews1.version HyperNews
在安装期间,HyperNews 目录树必须可由您的 httpd 服务器进程写入(之后则不需要,实际上建议您在安装软件包后删除写入权限)。我的服务器以用户 http,组 www 运行,所以我做了
chown -R http:www HyperNews
HyperNews 树是脚本和主配置文件所在的位置。HyperNews 文档(基础文章和回复 .html 文件,以及与它们一起使用的较小的配置文件)位于单独的子目录中,通常在 /usr/local/lib/httpd/htdocs(或等效目录)下。因此,您将执行类似以下操作
cd ../htdoc mkdir hn chown http:www hn
安装的下一步是运行设置脚本,您可以使用 HTML 浏览器执行此操作
netscape http://myhost/HyperNews/.scripts/setup-form.pl
您也可以运行命令行版本的设置脚本,但您必须手动编辑配置文件并再次运行它。一旦您知道自己在做什么,它就很方便,但对于第一次安装来说不是很友好。
设置脚本会询问您许多问题。我不会涵盖所有问题,但您应该注意以下几点
请注意,默认路径是 /usr/local/etc 而不是 /usr/local/lib,因此如果您的设置与我的类似,您将需要更改它。
确保按下 “重建密码和组文件” 按钮,除非您有理由想要手动创建密码文件。
您为管理员提供的名称应该是实际用户或有效的邮件别名。
当您提交设置表单时,它会创建(如果需要则备份)主配置文件 /usr/local/lib/httpd/HyperNews/hnrc。一旦该文件就位,您可以手动更改它。一些手动更改将立即生效;其他更改,特别是那些与访问和成员资格有关的更改,实际上是指示设置脚本创建或删除某些访问文件和符号链接的指令。为了使这些更改生效,您必须再次运行设置脚本;否则,您的配置文件和实际设置将不一致。(在手动更改 hnrc 后更新设置是运行更快的命令行版本 setup.pl 的好时机。)
如果您在运行 setup-form.pl 后查看 HyperNews 目录,您将看到有许多指向各种脚本的符号链接,以及两个新的子目录:Admin 和 SECURED。目录结构的基本逻辑与访问级别相符
所有脚本都保存在 HyperNews/.scripts 中。
那些可以由任何人运行的脚本在 HyperNews 中有链接。
那些可以由成员运行的脚本在 SECURED 中有链接。
那些只能由管理员运行的脚本在 Admin 中有链接。
如果您更改 hnrc 中谁可以做什么的设置并运行命令行 setup.pl 脚本,则将添加或删除相关链接。
设置过程还会创建密码和其他与访问相关的文件。这些文件是控制脚本目录的不同访问策略的门卫。这种按目录的安全是通过服务器处理的;例如,NCSA httpd 的 .htaccess 文件。(这让我们完全回到了我的安全免责声明!)
您可以通过调整 hnrc 和/或特定于文章的 .html,urc 文件来完成相当多的配置。更主要的更改涉及修改(黑客的礼貌说法)Perl 脚本。我做了一些这方面的工作。例如,在我安装了 HyperNews 的站点之一上,它的主要用途是将回复功能添加到我的同事之一的摄影作品集中。我们决定消除默认情况下存在的图标,这些图标指示回复类型——快乐、生气、评论、问题等。这些图标可以提供信息,但它们在设定页面基调方面也起着重要作用,并且它们不适合每个 HyperNews 文章。我还精简了文章回复表单,因为我们不打算使用会员资格,并且希望将我们自己的措辞纳入表单的说明中。
与所有软件包黑客攻击一样,我对 HyperNews 代码的攻击将使在该特定站点升级到新版本更加困难。事实上,如果我不需要立即获得无图标性,我很可能会坚持下去,看看它是否会在稍后合并到软件包中。关于 HyperNews 主页(参见上面的 URL)的一件很棒的事情是,可以并且已经发布了许多关于更改和改进的建议——HyperNews 的作者 Daniel LaLiberte 非常乐于接受和响应。如果您想跟上 HyperNews 的开发和发布步伐,您可以订阅 union.ncsa.uiuc.edu/HyperNews/get/history.html 上的 “history” 页面。
David Alan Black (dblack@candle.superlink.net)