Apache服务器CGI配置

服务器管理 强烈建议 2024-02-07 14:21 164 0

  配置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模块的指令能够有效。



时间:(2024-02-07 14:21:32)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!