/ cgi-bin / printenv - 不执行 - 输出脚本本身

时间:2013-08-02 17:34:55

标签: apache httpd.conf cgi-bin

我正在尝试让sci脚本在SciLinux 6 - x86_64上使用干净的httpd-2.4.6构建。

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

这基本上是安装的 - 只需进行一些编辑。

我确实:

ScriptAlias /cgi-bin/ "/var/tmp/apps/cgi-bin/"

在httpd.conf文件中。

我使用以下configure命令构建了httpd:

./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 / apps / cgi-bin / printenv

中完成了以下操作
  1. 编辑#!线
  2. 完成chmod a + rx
  3. 该命令在命令行中运行。

    但是,当我转到localhost:8001 / cgi-bin / printenv时,我只看到脚本本身 - 而不是脚本的输出。

    我确信我必须错过configure选项或httpd.conf指令。

1 个答案:

答案 0 :(得分: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>