欢迎光临
我们一直在努力

Apache服务器CGI配置

建站超值云服务器,限时71元/月

配置Apache来处理CGI请求,包括告诉Apache将CGI程序放在什么地方、为特定的文件扩展名设定CGI句柄、以及说明将哪些文件扩展名视为CGI程序。建议将CGI程序存储于一个目录下,以便对其进行更好的控制。最好将CGI程序目录放在你的DocumentRoot目录外面。这样就不可能对CGI程序直接访问,也就保证了你的站点具有更好的安全性。

一般情况下,CGI脚本文件都放入/home/httpd/cgi-bin目录中,需要使用CGI程序的html文档通过“/cgi-bin”来指定要调用的CGI程序。但如果要使脚本文件与相关的html文档在一起,则可以用ScriptAlias指令来指定新的脚本目录。

例如,html文件在目录/myhome/httpd/html中,CGI脚本在 /myhome/httpd/cgi-bin 中,使用命令:

ScriptAlias /mycgi/ /myhome/httd/cgi-bin

可以在任何html文件中,当需要使用/myhome/httpd/cgi-bin中的程序时,如abc.pl,就可以使用“/mycgi/abc.pl”来调用。

在由ScriptAlias
指定的目录中,Apache认为所有的文件都是用于执行,而不做一般文件处理。在这样的目录中,文件的名字不必具有如“.php”、“.pl”等可执行文件的后缀。但如果想要在ScriptAlias指定的目录之外执行这些程序,必须在Apache的配置文件中对执行程序的文件名后缀使用AddHandler进行说明,例如:

AddHandler cgi-script .php .pl

这样,Apache将把以“.php”、“.pl”为后缀的文件当作CGI脚本来运行。

为了使某个目录中以“.cgi”为后缀的文件能够执行,在Apache的配置文件中的相应目录下(由定义)的Options 中要包含ExecCGI选项。

有些时候,不希望目录中的所有“.cgi”文件都能被执行。例如,只让abc.cgi能执行,则可以使用模块mod_rewrite提供的功能,即在包含该文件的目录中,如htdocs/mydir加入“.htaccess”文件,文件内容如下:

RewriteEngine on

RewriteBase /mydir

RewriteRule ^abc.cgi\.cgi$-[T=application/x-httpd-cgi]

即把abc.cgi文件重写成具有CGI MIME类型的文件,从而能被服务器执行。

注意要在Apache的配置文件中将该目录的AllowOverride包含FileInfo,以便使在“.htaccess”文件中mod_rewrite模块的指令能够有效。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Apache服务器CGI配置
分享到: 更多 (0)