Как мне заставить apache запускать cgi вместо отображения текста?


12

Я пытаюсь установить bugzilla 4 на Ubuntu 11.04

Я добавил следующее в мой httpd.conf

<Directory “/var/www/dev.spincentre/bugzilla”>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI
   DirectoryIndex index.cgi
   AllowOverride Limit
</Directory>

Но когда я иду по URL, apache показывает текст index.cgi вместо выполнения скрипта. Есть идеи как это исправить?

Ответы:


18

Вы загрузили модуль mod_cgi? Вы можете увидеть, есть ли в каталоге / etc / apache2 / mods-enabled / символическая ссылка cgi.load. Если такой символической ссылки нет, вы можете создать ее, запустив

sudo a2enmod cgi

и затем перезапустите Apache:

sudo service apache2 restart

Вы можете бежать, man a2enmodчтобы увидеть, что a2enmodделает.


У меня была похожая проблема в Ubuntu 14.04 в процессе миграции со старых серверов. Я никогда не думал, что CGI был бы отключен по умолчанию, что не со старым сервером. Это исправлено! Пожалуйста, порекомендуйте их на stackoverflow.com/questions/15199198/… . Спасибо!
user3215

У меня есть символическая ссылка, но CGI все еще не работает.
Whitecat

1

При установке apache 2.4 мне пришлось решить несколько проблем, а также проблему с отображением текста вместо запуска cgi. Решение не такое, как указано выше, которое является решением для Apache 2.2

сначала вы скачаете файл 2.4 gz и распакуете. Если вы попытаетесь скомпилировать его, он будет жаловаться, что APR не найден, поскольку он больше не включен. Вам необходимо скачать файлы apr и apr-util из apache и распаковать их в каталог, который вы компилируете, в подкаталог srclib, поэтому ваш путь будет ./httpd/srclib/apr и ./httpd/srclib/apr -util. Вы также должны удалить любые номера версий из имени каталога.

перейдите в каталог / path / httpd и скомпилируйте

$ ./configure --with-includes-apr

Ваша конфигурация будет по умолчанию PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIX / conf / httpd.conf

Вам нужно будет отредактировать файл httpd.conf, чтобы запустить ваши cgi

В моем случае я сделал следующее:

изменить Слушать 80 на Слушать 127.0.0.1:80

активировать строку: LoadModule cgid_module modules / mod_cgid.so

изменил SeverName на: ServerName 127.0.0.1:80

изменил пути в DocumentRoot и Directory, чтобы соответствовать моей системе

изменил путь в ScriptAlias

включил строку Scriptsock cgisock

изменил путь в каталоге после ScriptAlias ​​для соответствия моей системе

включил строку AddHandler cgi-скрипт .cgi

сохранил изменения и запустил apache с:

$ / usr / local / apache2 / bin / apachectl -k start

Надеюсь, это поможет любому, кто борется с этим;)


Спасибо, что поделился, у меня возникли проблемы с отслеживанием, не могли бы вы организовать это немного лучше?
user230910
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.