| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 编程开发 > Perl教程 > 文章正文 用户登录
各种漂亮的鼠标UR
去除头部banner
修改新浪博客上面
Google AdSenser 
Skype为推广员提供
Dotworlds免费提供
Better fonts免费
TinyURL免费缩短网
RealTracker提供免
谁杀死了站长(We

Perl CGI 程式写作常问问题集(3)CGI 与 WWW Server           

Perl CGI 程式写作常问问题集(3)CGI 与 WWW Server

作者:佚名 来源:不详 更新:2006-8-25 21:05:35 错误报告 我要投稿
  3.0 - CGI 与 WWW Server

--------------------------------------------------------------------------------

Q3.1: 我的 Perl CGI 程式要放在哪里执行?cgi-bin 这个目录是做甚麽用的?
server 通常是设定成去执行放在 ``cgi-bin'' 目录底下的 CGI 程式。不过, server 管理者同时也可以在设定档中设定 aliases,让所有含某些副档名(如 .cgi、.pl)的 scripts 都能执行*。 

【译者】设定 CGI aliases 和副档名固然很方便,但 server 管理者须注意到相 关的安全问题。 


--------------------------------------------------------------------------------

Q3.2: 什麽是档案使用权限?怎样改?
档案权限是根据使用者识别代号(又称 uid),以及他们所属的团体来决定是否赋 与使用者读、写,和执行某档案的权利。您可使用 chmod 这个指令去修改档案的 使用权限。例如: 

% ls -ls form.cgi

  1 -rwx------  1 shishir       974 Oct 31 22:15 form.cgi*

此一档案的权限为 0700(八进制),意味着没有人(档案所有人除外)能够读取、 写进,或执行这个档案。我们可以用 chmod 这个指令去修改它的权 限: 

% chmod 755 form.cgi
% ls -ls form.cgi

  1 -rwxr-xr-x  1 shishir       974 Oct 31 22:15 form.cgi*

这样一来,权限就变了。现在和 ``shishir'' 在同一个团体的使用者,还有其他 任何的使用者都有权利去读取和执行这个档案了。 

如欲知 chmod 指令各八进制数码所代表的含意,请参阅 chmod manpages的说明。 


--------------------------------------------------------------------------------

Q3.3: Perl 应该安装在哪里才可以执行它?
Perl 可以安装在系统上任何一个角落!您唯一要注意的是 server 不能在chroot 的环境下跑,否则它便无法跑 perl 解译器。换言之,系统管理者可以把根目录 改变,让 ``/'' 指到另一个目录,而不是实际真正的根目录(``/'')。 


--------------------------------------------------------------------------------

Q3.4: 我为什麽一直得到 ``Server: Error 500'' 的讯息?
以下几种情形会触发这个错误讯息: 

如果 script 开头的地方没有 ``#!/usr/local/bin/perl'' 这个指到 Perl 解译器的标头,或者是指到解译器(或 library 档)的路径错误。 
如果 script 输出的第一行是一个不正确的标头(即 ``Content-Type: text/html'' ),或者是该标头後面没有跟着一个空行。 
如果您的 script 有句法上的错误。您的 scripts 都应在指令列先跑跑看才 是。 

--------------------------------------------------------------------------------

Q3.5: 我试着打开一个档案,想把资料储存在里头,但是 open() 的指令失败了。到底是怎麽搞的?
一般说来,HTTP server 是以 ``nobody''、``www'',或其他这类权限低的使用 者的身份来跑的。因为这个缘故,您打算在其中制造新档案的目录,对 server 跑的 使用者 ID 必须要是可写(writable)才行。 

为了确定起见,您每次都应该先检查 open 这个指令送回的结束状态(return status),看看 open 有没有成功。 

open(FILE, "/abc/data.txt")
    || error("Could not open file /abc/data.txt");

.
.
.

sub error {
    my($message) = @_;

    print <Content-type: text/html
Status: 500 CGI Error




Oops! Error




$message





End_of_Error
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。