Linux系统小型日程表挑战大型群件

文章作者 100test 发表时间 2007:03:14 16:45:50
来源 100Test.Com百考试题网


群件很强大也很重要。如果需要,可以购买一个群件系统。或者可能是一个集群 —— 有一个使用了 RAID 的专用的数据库服务器,以及磁带备份的保证,还有单独的机器来运行界面。为什么?当然是因为它更可靠,而且可以根据负载扩展!

不过,您可能不会处理非常多的调度任务,以至于需要使用消耗大量内存的应用程序。可能只是需要某种基于 Web 的日程表界面,以及核查需要做的项目的能力。

可能并不需要 30 兆字节大小的类库、由一组本体专家(ontologists)来设计对象模型,或者依赖 15 个其他软件包。这里是我的目标:尽可能只使用系统附带的功能来运行那些应用程序。

业务的第一个步骤

首先,需要确保老机器可以运行某个 Web 服务器和某些 CGI 脚本。方便的是,我们的机器已经拥有了一个 Web 服务器,其根位于 /var/www/htdocs.检查配置文件(/etc/apache/httpd.conf),可以发现默认把 ExecCGI 和 Includes 都关闭了 —— 不过我想把它们打开,让我的 Web 页面华丽而生动。

之后的 Options 那一行是相关的设置。我添加了 ExecCGI 和 Includes 选项。如果没有服务器端解析的文件的支持,Includes 不会做什么事情;在 httpd.conf 中有一些注释掉的行将完成此任务。我去掉了这三行的注释(但仍让那些真正的注释保持被注释):

[...]

AddHandler cgi-script .cgi





#

# To use server-parsed HTML files

#

AddType text/html .shtml

AddHandler server-parsed .shtml

[...]

完成后,执行 apachectl restart,让 Apache 重新加载其配置文件。为节约以 root 身份登录的时间,可以将 /var/www/htdocs 的所有者设置为您的个人帐号。我这样做了,而且还删除了在线手册和默认的索引页。

在计算机科学中有一句谚语,“百分之十的工作可以解决百分之九十的问题”。就此想法,我为这个应用程序制作了一个首页草稿,囊括了这个程序预期的主要工作:

Yo! Do the dishes.

现在只需要测试 CGI 处理。我的测试叫做 env.cgi,并不大,但是很实用:

#!/usr/bin/perl -w

use Env.

use CGI.





print "Content-Type: text/plain\n\n".

foreach $k (sort keys %ENV) {

print "$k: $ENV{$k}\n".

}

exit 0.

您会注意到,我实际上并没有使用 CGI 模块;之所以引用它,是为了确保它已经安装。将它放在适当的位置,我可以确认 CGI 脚本正在运行。我将机器在网络上命名为“crate”,所以,对 http://crate/env.cgi 的访问结果如我所想:

[...]

REMOTE_ADDR: 205.166.146.66

REMOTE_PORT: 62594

REQUEST_METHOD: GET

REQUEST_URI: /env.cgi

SCRIPT_FILENAME: /var/www/htdocs/env.cgi

SCRIPT_NAME: /env.cgi

SERVER_ADDR: 205.166.146.93

SERVER_ADMIN: [email protected]

SERVER_NAME: crate.plethora.net

SERVER_PORT: 80

SERVER_PROTOCOL: HTTP/1.1


相关文章


WindowsNT、Linux、Unix等服务器互连
Linux系统小型日程表挑战大型群件
Linux操作系统下的网络并行计算方法
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛