配置apache运行cgi程序

配置apache运行cgi程序
 
文章目录
[隐藏]
ScriptAlias目录的CGI
ScriptAlias目录之外的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程序的需求。
一、用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
二、.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://lamp.linux.gov.cn/Apache/ApacheMenu/howto/cgi.html
转载请标明文章来源:《https://www.centos.bz/2012/06/configure-apache-run-cgi/》
相关文章
相关标签/搜索