网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Perl
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Perl的经典用法:读入多个记录.
.LINUX.
.Perl简介.
.PerlCGI程式写作常问问题集(3)CG.
.PerlDBI入门.
.执行mod_perl模块.
.各种平台下Perl模块的安装方法.
.Perl常规表达式(2).
.PERL下的正则表达式.
.perl常问问题集--第一篇.
.构建一个Perl/CGI投票系统.
.使用perldoc找文档.
.Perl变量(1)--纯变量.
.单行代码的Perl程序.
.Perl语言全面编译(一).
.Perl简介.
.Perl变量(2)--数组.
.proftpdlog文件实时分析,动态封.
.Perl简单模块指南.
.perl常问问题集--第一篇.

PerlCGI程式写作常问问题集(3)CGI与WWWServer

发表日期:2006-3-5



3.0-CGI与WWWServer

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

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

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


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

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

ls-lsform.cgi

1-rwx------1shishir974Oct3122:15form.cgi*

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

chmod755form.cgi
ls-lsform.cgi

1-rwxr-xr-x1shishir974Oct3122:15form.cgi*

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

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


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

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


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

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

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

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

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

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

open(FILE,"/abc/data.txt")
||error("Couldnotopenfile/abc/data.txt");

.
.
.

suberror{
my($message)=@_;

print<Content-type:text/html
Status:500CGIError


CGIError

Oops!Error




$message





End_of_Error
}
 

上一篇:PerlCGI程式写作常问问题集(2)Modules(模组) 人气:3925
下一篇:PerlCGI程式写作常问问题集(4)安全 人气:4677
浏览全部Perl的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐