WEB服务器架设-CGI.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WEB服务器架设-CGI

WEB服务器架设-CGI 一、配置Apache以允许CGI 1 1、ScriptAlias指令 1 2、用Options显式地允许CGI的执行 2 3、.htaccess文件 2 二、第一个CGI程序 2 三、排错 2 1文件的权限 3 2路径信息 3 3语法错误 3 4出错记录 3 四、?其它 4 环境变量 4 STDIN和STDOUT 4 相关模块? mod_alias mod_cgi 相关指令 ?AddHandler Options ScriptAlias CGI(公共网关接口[Common Gateway Interface])定义了网站服务器与外部内容协商程序之间交互的方法,通常是指CGI程序或者CGI脚本,是在网站上实现动态页面的最简单而常用的方法。 一、配置Apache以允许CGI1、ScriptAlias指令·使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中文件都是CGI程序并试图运行。 ·如:ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/???? 目录映射 ·在其默认的配置文件httpd.conf中则会有上述配置。 ·ScriptAlias指令定义了映射到一个特定目录的URL前缀,与Alias指令非常相似,两者一般都用于指定位于DocumentRoot目录以外的目录,其区别是ScriptAlias又多了一层含义,即其URL前缀中任何文件都被视为CGI程序。所以,上述例子会指示Apache,/cgi-bin/应该指向/usr/local/apache/cgi-bin/目录,且视之为CGI程序。2、用Options显式地允许CGI的执行·可以在主服务器配置文件中,使用Options指令显式地允许特定目录中CGI的执行: Directory /usr/local/apache/htdocs/somedir Options +ExecCGI /Directory ·上述指令使Apache允许CGI文件的执行。另外,还必须告诉服务器哪些文件是CGI文件。下面的AddHandler指令告诉服务器所有带有cgi或pl后缀的文件是CGI程序:AddHandler cgi-script cgi pl 3、.htaccess文件·.htaccess文件是针对目录进行配置的一种方法。 ·Apache在提供一个资源时,会在此资源所在目录中寻找.htaccess文件,如果有,则使其中的指令生效。AllowOverride 指令决定了.htaccess文件是否有效,它指定了哪些指令可以出现在其中,或者根本不允许使用。 A、为此,需要在主服务器配置中如此配置: AllowOverride Options B、在.htaccess文件中,需要如此配置: Options +ExecCGI 以使Apache允许此目录中CGI程序的执行。二、第一个CGI程序这个CGI程序例子在浏览器中打印一行文字。把下列存为first.pl文件,并放在你的cgi-bin目录中。 #!/usr/bin/perl print Content-type: text/html ; print Hello, World.; 三、排错从网络访问CGI程序,浏览器中可能会发生四种情况: ·CGI程序的输出这说明一切正常。 ·CGI程序的源代码或者一个POST Method Not Allowed消息??? ?? 这说明Apache没有被正确配置以执行CGI程序,重新阅读configuring Apache看看遗漏了什么。 ·一个以Forbidden开头的消息?这说明有权限问题。参考Apache error log和下面的文件的权限。 ·一个Internal Server Error消息 查阅Apache error log,可以找到CGI程序产生的出错消息Premature end of script headers。对此,需要检查下列各项,以找出不能产生正确HTTP头的原因。 1文件的权限·服务器不是以你的用户身份运行的,在服务器启动后,拥有的是一个非特权用户的权限-通常是``nobody或者``apache -而需要更大的权限以允许文件的执行。通常,给予``nobody足够的权限以执行文件的方法是,对文件赋予everyone execute权限:chmod a+x first.pl ·另外,如果需要对其他文件进行读取或写入,也必须对这些文件赋予正确的权限。2路径信息当你在命令行执行一个程序,某些信息会自动传给shell而无须你操心,比如一个路径,告诉shell你所引用的文件可以在哪儿找到。但是,在CGI程序通过网站服务器执行时,则没有此路径,所以,你在

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档