- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 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程序通过网站服务器执行时,则没有此路径,所以,你在
文档评论(0)