/ cgi-bin / printenv - не выполняется - выводит сам скрипт

Я пытаюсь заставить cgi-скрипты работать с чистой сборкой httpd-2.4.6 на SciLinux 6 - x86_64.

Мой файл 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 / apps / cgi-bin / printenv

  1. отредактировал #! линия
  2. сделано chmod a + rx

Команда работает из командной строки.

Однако, когда я перехожу на localhost: 8001 / cgi-bin / printenv, я вижу только сам скрипт, а не вывод скрипта.

Я уверен, что мне не хватает параметра configure или директивы httpd.conf.


person ErikR    schedule 02.08.2013    source источник


Ответы (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>
person ErikR    schedule 05.08.2013