Wie kann ich Apache veranlassen, ein CGI auszuführen, anstatt den Text anzuzeigen?

12

Ich versuche Bugzilla 4 auf Ubuntu 11.04 zu installieren

Ich habe die folgende Datei zu meiner httpd.conf hinzugefügt

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

Aber wenn ich zur URL gehe, zeigt Apache den Text von index.cgi an, anstatt das Skript auszuführen. Irgendeine Idee, wie man es repariert?

FigBug
quelle

Antworten:

18

Hast du das mod_cgi Modul geladen? Sie können sehen, ob das Verzeichnis / etc / apache2 / mods-enabled / einen Symlink hat cgi.load. Wenn es keinen solchen Symlink gibt, können Sie ihn durch Ausführen von erstellen

sudo a2enmod cgi

und starte dann Apache neu:

sudo service apache2 restart

Du kannst rennen, um man a2enmodzu sehen, was a2enmodpassiert.

Elmicha
quelle
Ich hatte ein ähnliches Problem bei Ubuntu 14.04 während einer Migration von alten Servern. Ich hätte nie gedacht, dass CGI standardmäßig deaktiviert sein würde, was nicht bei alten Servern der Fall ist. Das hat es geschafft !. PLZ empfehlen sie das selbe bei stackoverflow.com/questions/15199198/… . Vielen Dank!
User3215
Ich habe den symlink aber cgi läuft noch nicht.
Whitecat
1

Bei der Installation von Apache 2.4 musste ich eine Reihe von Problemen lösen und hatte auch das gleiche Problem mit der Anzeige von Text, anstatt die CGI auszuführen. Die Lösung ist nicht die gleiche wie oben. Dies ist die Lösung für Apache 2.2

Zuerst laden Sie die 2.4 gz-Datei herunter und entpacken sie. Wenn Sie versuchen, es zu kompilieren, wird der APR nicht gefunden, da er nicht mehr enthalten ist. Sie müssen die apr- und apr-util-Dateien von Apache herunterladen und in das Verzeichnis entpacken, in dem Sie Apache kompilieren, und zwar in das Unterverzeichnis srclib. Ihr Pfad wäre also ./httpd/srclib/apr und ./httpd/srclib/apr -util. Sie müssen auch alle Versionsnummern aus dem Verzeichnisnamen entfernen.

cd in dein / path / httpd Verzeichnis und kompiliere mit

$ ./configure --mit-enthalten-apr

Ihre Konfiguration ist standardmäßig PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIX / conf / httpd.conf

Sie müssen Ihre httpd.conf-Datei bearbeiten, damit Ihre CGIs ausgeführt werden können

In meinem Fall habe ich Folgendes getan:

Ändern Sie Listen 80 auf Listen 127.0.0.1:80

aktiviere die Zeile: LoadModule cgid_module modules / mod_cgid.so

SeverName wurde in ServerName 127.0.0.1:80 geändert

hat die Pfade in DocumentRoot und Directory an mein System angepasst

hat den Pfad in ScriptAlias ​​geändert

aktivierte die Zeile Scriptsock cgisock

änderte den Pfad im Verzeichnis nach den ScriptAlias, um meinem System zu entsprechen

aktivierte die Zeile AddHandler cgi-script .cgi

speicherte die Änderungen und startete Apache mit:

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

Hoffe das hilft jedem, der damit zu kämpfen hat;)

Peter Trevathan
quelle
Vielen Dank fürs Teilen, ich habe Probleme beim Verfolgen. Würde es Ihnen etwas ausmachen, dies etwas besser zu organisieren?
user230910