Comment puis-je faire apache exécuter un cgi au lieu d'afficher le texte?


12

J'essaie d'installer bugzilla 4 sur Ubuntu 11.04

J'ai ajouté ce qui suit à mon httpd.conf

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

Mais quand je vais à l'URL, apache montre le texte d'index.cgi au lieu d'exécuter le script. Toute idée de comment résoudre ce problème?

Réponses:


18

Avez-vous chargé le module mod_cgi? Vous pouvez voir si le répertoire / etc / apache2 / mods-enabled / a un lien symbolique cgi.load. S'il n'y a pas un tel lien symbolique, vous pouvez le créer en exécutant

sudo a2enmod cgi

puis redémarrez Apache:

sudo service apache2 restart

Vous pouvez courir man a2enmodpour voir ce qui se a2enmodpasse.


J'ai eu un problème similaire sur Ubuntu 14.04 lors d'un processus de migration à partir d'anciens serveurs. Je n'ai jamais pensé que cgi aurait été désactivé par défaut, ce qui n'est pas le cas avec l'ancien serveur. Cela l'a corrigé !. Plz leur recommande la même chose à stackoverflow.com/questions/15199198/… . Je vous remercie!
user3215

J'ai le lien symbolique mais cgi ne fonctionne toujours pas.
Whitecat

1

Lors de l'installation d'apache 2.4, j'ai eu un certain nombre de problèmes à résoudre et j'ai également eu le même problème avec le texte affiché au lieu d'exécuter le cgi. La solution n'est pas la même que ci-dessus, qui est la solution pour apache 2.2

vous devez d'abord télécharger le fichier 2,4 gz et décompresser. Si vous essayez de le compiler, vous vous plaindrez que l'APR est introuvable, car il n'est plus inclus. Vous devez télécharger les fichiers apr et apr-util depuis apache et les décompresser dans le répertoire que vous compilez apache dans le sous-répertoire appelé srclib, donc votre chemin serait ./httpd/srclib/apr et ./httpd/srclib/apr -util. vous devez également supprimer tous les numéros de version du nom du répertoire.

cd dans votre répertoire / path / httpd et compilez avec

$ ./configure - avec-inclus-apr

Votre configuration sera par défaut PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIX / conf / httpd.conf

Vous devrez éditer votre fichier httpd.conf pour que vos cgi s'exécutent

Dans mon cas, j'ai fait ce qui suit:

changer Listen 80 en Listen 127.0.0.1:80

activer la ligne: LoadModule cgid_module modules / mod_cgid.so

changé SeverName en: ServerName 127.0.0.1:80

changé les chemins d'accès dans DocumentRoot et Directory pour l'adapter à mon système

changé le chemin dans ScriptAlias

activé la ligne Scriptsock cgisock

changé le chemin dans le répertoire après le ScriptAlias ​​pour l'adapter à mon système

activé la ligne AddHandler cgi-script .cgi

enregistré les modifications et commencé apache avec:

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

J'espère que cela aide toute personne aux prises avec cela;)


Merci d'avoir partagé, j'ai du mal à suivre, ça vous dérangerait d'organiser un peu mieux?
user230910
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.