设为首页收藏本站language 语言切换
查看: 2255|回复: 1
收起左侧

[分享] 如何在apache上跑cgi程序

[复制链接]
发表于 2012-9-27 11:13:37 | 显示全部楼层 |阅读模式

如何才能在apache上面运行cgi的程序,想必很多朋友想知道这个答案,其实在apache上跑cgi有两种方法,一种是:ScriptAlias目录的CGI,另一种是ScriptAlias以外目录的CGI。

ScriptAlias目录的CGI

ScriptAlias指令使Apache允许执行一个特定目录中的CGI程序。当客户端请求此特定目录中的资源时,Apache假定其中文件都是CGI程序并试图运行。
ScriptAlias指令形如:

  • ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/

ScriptAlias目录以外的CGI

由于安全原因,CGI程序通常被限制在ScriptAlias指定的目录中,如此,管理员就可以严格地控制谁可以使用CGI程序。但是,如果采取了恰当的安全方法措施,则没有理由不允许其他目录中的CGI程序运行。比如,你可能希望用户在UserDir指定的宿主目录中存放页面,而他们有自己的CGI程序,但无权存取cgi-bin目录,这样,就产生了运行其他目录中CGI程序的需求。
1、用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

2、.htaccess文件
.htaccess文件是针对目录进行配置的一种方法。Apache在提供一个资源时,会在此资源所在目录中寻找.htaccess文件,如果有,则使其中的指令生效。AllowOverride 指令决定了.htaccess文件是否有效,它指定了哪些指令可以出现在其中,或者根本不允许使用。为此,需要在主服务器配置中如此配置:

  • AllowOverride Options

在.htaccess文件中,需要如此配置:

  • Options +ExecCGI

以使Apache允许此目录中CGI程序的执行。
最后可以编写一个cgi程序测试,如:

  • #!/usr/bin/perl
  • print "Content-type: text/html\n\n";
  • print "Hello, World.";
本文来自:http://www.51rhca.com/archives/153 linux培训


发表于 2012-9-27 12:16:03 | 显示全部楼层
沙发 2012-9-27 12:16:03 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-15 08:22 , Processed in 0.070306 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表