1

SciLinux 6 - x86_64 上の httpd-2.4.6 のクリーン ビルドで動作する CGI スクリプトを取得しようとしています。

私の httpd.conf ファイル: http://pastebin.com/P0CKYfqU

これは基本的にインストールされたものです - いくつかの編集があります。

私は持っています:

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

httpd.conf ファイル内。

次の構成コマンドを使用して 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

このコマンドは、コマンド ラインから機能します。

ただし、localhost:8001/cgi-bin/printenv に移動すると、スクリプトの出力ではなく、スクリプト自体が表示されます。

configureオプションまたはhttpd.confディレクティブが欠落していると確信しています。

4

1 に答える 1

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

printenvcgi スクリプトを機能させるには、次のオプションを /cgi-bin/ ディレクトリのオプションに追加しますExecCGI

 <Directory "/var/tmp/apps/cgi-bin">
     AllowOverride None
-    Options None
+    Options +ExecCGI
     Require all granted
 </Directory>
于 2013-08-05T15:41:31.060 に答える