2013-08-02 145 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>