WEB服务器架设-CGI.doc_第1页
WEB服务器架设-CGI.doc_第2页
WEB服务器架设-CGI.doc_第3页
WEB服务器架设-CGI.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WEB服务器架设-CGI一、配置Apache以允许CGI11、ScriptAlias指令12、用Options显式地允许CGI的执行23、.htaccess文件2二、第一个CGI程序2三、排错21文件的权限32路径信息33语法错误34出错记录3四、其它4环境变量4STDIN和STDOUT4相关模块 mod_alias mod_cgi相关指令AddHandler Options ScriptAliasCGI(公共网关接口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的执行: Options +ExecCGI上述指令使Apache允许CGI文件的执行。另外,还必须告诉服务器哪些文件是CGI文件。下面的AddHandler指令告诉服务器所有带有cgi或pl后缀的文件是CGI程序:AddHandler cgi-script cgi pl3、.htaccess文件.htaccess文件是针对目录进行配置的一种方法。Apache在提供一个资源时,会在此资源所在目录中寻找.htaccess文件,如果有,则使其中的指令生效。AllowOverride 指令决定了.htaccess文件是否有效,它指定了哪些指令可以出现在其中,或者根本不允许使用。A、为此,需要在主服务器配置中如此配置:AllowOverride OptionsB、在.htaccess文件中,需要如此配置:Options +ExecCGI以使Apache允许此目录中CGI程序的执行。二、第一个CGI程序这个CGI程序例子在浏览器中打印一行文字。把下列存为first.pl文件,并放在你的cgi-bin目录中。#!/usr/bin/perlprint 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程序通过网站服务器执行时,则没有此路径,所以,你在CGI程序中引用的任何程序(如sendmail)都必须指定其完整的路径,使shell能找到它们以执行你的CGI程序。普通的用法是,在CGI程序的第一行中指明解释器(通常是perl),形如:#!/usr/bin/perl 必须保证它的确指向解释器。3语法错误多数CGI程序失败的原因在于程序本身有问题。在用浏览器测试以前,先在命令行中执行你的程序,能够发现大多数的问题。4出错记录出错记录是你的朋友。任何错误都会在出错记录中有记载,所以你应该首先查看它。学会阅读出错记录,可以快速找出问题并快速解决。四、其它环境变量 环境变量是使用计算机时到处都会用到的变量,比如路径、你的用户名以及你的终端类型等等。在命令行输入env,可以得到你的标准的当天的环境变量列表。完整的变量列表见/cgi/env.htmlSTDIN和STDOUT服务器和客户端之间的其他通讯都通过标准输入设备(STDIN)和标准输出设备(STDOUT)完成。通常,STDIN是指键盘或者一个程序所作用于的一个文件,STDOUT指控制台或显示器。当你POST一个网络表格到一个CGI程序时,表格中的数据被捆扎为一个特殊形式通过STDIN传送给CGI程序,这样,这个程序就

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论