2013-08-02 110 views
1

我想要在SciLinux 6-x86_64上获得一个干净的httpd-2.4.6版本的cgi脚本。/cgi-bin/printenv - 不执行 - 输出脚本本身

我的httpd.conf文件:http://pastebin.com/P0CKYfqU

这基本上是已安装的一个 - 有一些修改。

我有:

ScriptAlias /cgi-bin/ "/var/tmp/apps/cgi-bin/" 
在httpd.conf文件

我建立的httpd使用以下configure命令:

./configure --prefix=/var/tmp/apps --with-apr=/var/tmp/apps/bin/apr-1-config --with-apr-util=/var/tmp/apps/bin/apu-1-config --with-pcre=/var/tmp/apps/bin/pcre-config --enable-cgi 

我做了以下到/ var/tmp目录/应用/ cgi-bin目录/ printenv

  1. 编辑#!线
  2. 做搭配chmod A + RX

命令行命令的工作。

但是,当我去本地主机:8001/cgi-bin/printenv我只看到脚本本身 - 而不是脚本的输出。

我确定我必须缺少configure选项或httpd.conf指令。

回答

1

在httpd-2.4.6中,默认情况下mod_cgi模块没有构建或启用。

这里是一个构建配方,其工作原理:

构建的httpd与有可配置选项:

configure \ 
    --prefix=$TOP \ 
    --with-apr=$TOP/bin/apr-1-config \ 
    --with-apr-util=$TOP/bin/apu-1-config \ 
    --with-pcre=$TOP/bin/pcre-config \ 
    --enable-modules=all \ 
    --enable-proxy \ 
    --enable-proxy-http \ 
    --disable-userdir \ 
    --enable-cgi 

然后在httpd.conf文件确保mod_cgi.so模块加载:

LoadModule cgi_module modules/mod_cgi.so 

要使printenv cgi脚本正常工作,请将ExecCGI选项添加到/ cgi-bin /目录的选项中:

<Directory "/var/tmp/apps/cgi-bin"> 
    AllowOverride None 
- Options None 
+ Options +ExecCGI 
    Require all granted 
</Directory>