我正在尝试让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
中完成了以下操作该命令在命令行中运行。
但是,当我转到localhost:8001 / cgi-bin / printenv时,我只看到脚本本身 - 而不是脚本的输出。
我确信我必须错过configure
选项或httpd.conf
指令。
答案 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>