学习网考试学习资料

Gzu521.com

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

LINUX教程   点击:次   发布时间:2006-11-30   【字体: 】   来源:Gzu521.com
GZU521.COM学习网
群件很强大也很重要。如果需要,可以购买一个群件系统。或者可能是一个集群 —— 有一个使用了 raid 的专用的数据库服务器,以及磁带备份的保证,还有单独的机器来运行界面。为什么?当然是因为它更可靠,而且可以根据负载扩展!

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

  可能并不需要 30 兆字节大小的类库、由一组本体专家(ontologists)来设计对象模型,或者依赖 15 个其他软件包。这里是我的目标:尽可能只使用系统附带的功能来运行那些应用程序。 ` L ^2a =jP]}h [ 本 资 料 来 源 于 贵 州 学 习 网 电脑课堂LINUX教程 http://Www.gzU521.com ] ` L ^2a =jP]}h

  业务的第一个步骤

  首先,需要确保老机器可以运行某个 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: root@midas.slackware.lan
server_name: crate.plethora.net
server_port: 80
server_protocol: http/1.1

  那非常有利于调试 —— 它发现我那部分有一个错误。我忘记去修改 httpd.conf 中的 serveradmin 行了。很容易修改。您的用户名不存在。请走开。
  安全性是早期出现的问题之一。您不会希望让所有人都可以留下关于午餐所有者的危险记录。进入访问控制。

  这需要对 httpd.conf 进行更多修改,允许 .htaccess 文件限制对站点的访问。那表示要向允许访问列表中添加“limit authconfig”,覆盖顶层配置文件。

  接下来需要一个 .htaccess 文件。从这里开始:


authuserfile /var/www/htpasswd
authgroupfile /dev/null
authname "roommates only"
authtype basic
require valid-user

  htpasswd 文件并不是以普通形式存在于文档树中。那样做是有目的的;不能为攻击者创造有利条件。可以使用 htpasswd 命令初始化 htpasswd 文件:


# htpasswd -c ./htpasswd seebs
new password:
re-type new password:
adding password for user seebs MFN)&8B[a9w[O+(S[ 此文转贴于我的学习网电脑课堂LINUX教程 http://www.Gzu521.com]MFN)&8B[a9w[O+(S

  -c 选项让 htpasswd 创建一个新文件。当创建另外的用户时不要使用它;否则,只有最新的用户才能够登录。完成后,尝试访问页面将会要求输入口令。给出用户名和密码,然后就能进入了。 $remote_user 将被设置为用户名,以使得脚本可以知道谁在使用它们。

本文共3页:第 [1] [2] [3]下一页

责任编辑:gzu521

电脑课堂分类
Windows 2000教程
Windows XP教程
Windows 2003教程
Windows Vista教程
LINUX教程
软件教学
办公软件
硬件DIY
分类推荐信息
更多...
大类最新文章
更多...