Jak zmusić apache do uruchomienia cgi zamiast wyświetlania tekstu?

12

Próbuję zainstalować Bugzillę 4 na Ubuntu 11.04

Dodałem następujące do mojego httpd.conf

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

Ale kiedy przechodzę do adresu URL, apache pokazuje tekst index.cgi zamiast wykonywania skryptu. Masz pomysł, jak to naprawić?

FigBug
źródło

Odpowiedzi:

18

Czy załadowałeś moduł mod_cgi? Możesz sprawdzić, czy katalog / etc / apache2 / mods-enabled / ma dowiązanie symboliczne cgi.load. Jeśli nie ma takiego dowiązania symbolicznego, możesz je utworzyć, uruchamiając

sudo a2enmod cgi

a następnie uruchom ponownie Apache:

sudo service apache2 restart

Możesz uruchomić, man a2enmodaby zobaczyć, co a2enmodrobi.

Elmicha
źródło
Miałem podobny problem z Ubuntu 14.04 podczas migracji ze starych serwerów. Nigdy nie myślałem, że cgi byłby domyślnie wyłączony, co nie jest na starym serwerze. To naprawiło! Plz polecić im takie same w stackoverflow.com/questions/15199198/... . Dziękuję Ci!
user3215
Mam dowiązanie symboliczne, ale cgi nadal nie działa.
Whitecat
1

Podczas instalowania Apache 2.4 miałem wiele problemów do rozwiązania, a także miałem ten sam problem z wyświetlaniem tekstu zamiast uruchamiania cgi. Rozwiązanie nie jest takie samo jak powyżej, które jest rozwiązaniem dla Apache 2.2

najpierw pobierzesz plik 2.4 gz i rozpakujesz. Jeśli spróbujesz skompilować, narzeka, że ​​APR nie został znaleziony, ponieważ nie jest już uwzględniony. Musisz pobrać pliki apr i apr-util z apache i rozpakować je do katalogu, w którym kompilujesz apache do podkatalogu o nazwie srclib, więc twoją ścieżką byłoby ./httpd/srclib/apr i ./httpd/srclib/apr -util. musisz także usunąć wszystkie numery wersji z nazwy katalogu.

cd do katalogu / path / httpd i kompilacji z

$ ./configure --with-included-apr

Domyślnie skonfigurujesz PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIKS / conf / httpd.conf

Musisz zmodyfikować plik httpd.conf, aby uruchomić cgi

W moim przypadku wykonałem następujące czynności:

zmień Listen 80 na Listen 127.0.0.1:80

aktywuj linię: LoadModule cgid_module modules / mod_cgid.so

zmieniono SeverName na: ServerName 127.0.0.1:80

zmieniłem ścieżki w DocumentRoot i Directory, aby pasowały do ​​mojego systemu

zmieniono ścieżkę w ScriptAlias

włączono linię Scriptsock cgisock

zmieniłem ścieżkę w katalogu po ScriptAlias, aby pasowała do mojego systemu

włączono linię AddHandler cgi-script .cgi

zapisał zmiany i rozpoczął apache za pomocą:

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

Mam nadzieję, że pomoże to każdemu, kto ma z tym problem;)

Peter Trevathan
źródło
Dzięki za dzielenie się, mam problem ze śledzeniem, czy mógłbyś zorganizować to trochę lepiej?
user230910,