¿Cómo hago que apache ejecute un cgi en lugar de mostrar el texto?

12

Estoy tratando de instalar bugzilla 4 en ubuntu 11.04

He agregado lo siguiente a mi httpd.conf

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

Pero cuando voy a la URL, apache muestra el texto de index.cgi en lugar de ejecutar el script. ¿Alguna de idea de cómo arreglarlo?

FigBug
fuente

Respuestas:

18

¿Cargó el módulo mod_cgi? Puede ver si el directorio / etc / apache2 / mods-enabled / tiene un enlace simbólico cgi.load. Si no existe dicho enlace simbólico, puede crearlo ejecutando

sudo a2enmod cgi

y luego reinicia Apache:

sudo service apache2 restart

Puedes correr man a2enmodpara ver qué a2enmodhace.

elmicha
fuente
Tuve un problema similar en Ubuntu 14.04 en un proceso de migración desde servidores antiguos. Nunca pensé que cgi se hubiera deshabilitado de manera predeterminada, lo que no ocurre con el servidor anterior. Esto lo solucionó! Por favor, recomiéndeles lo mismo en stackoverflow.com/questions/15199198/… . ¡Gracias!
user3215
Tengo el enlace simbólico pero cgi todavía no se está ejecutando.
Whitecat
1

Al instalar Apache 2.4 tuve que resolver varios problemas y también tuve el mismo problema con el texto que se muestra en lugar de ejecutar el CGI. La solución no es la misma que la anterior, que es la solución para apache 2.2

primero descargará el archivo de 2.4 gz y lo descomprimirá. Si intenta compilarlo, se quejará de que no se encuentra el APR, ya que ya no está incluido. Debe descargar los archivos apr y apr-util de apache y descomprimirlos en el directorio que está compilando apache en el subdirectorio llamado srclib, por lo que su ruta sería ./httpd/srclib/apr y ./httpd/srclib/apr -util. También debe eliminar cualquier número de versión del nombre del directorio.

cd a su directorio / ruta / httpd y compile con

$ ./configure --with-included-apr

Su configuración predeterminada será PREFIX = / usr / local / apache2

$ make

$ make install

$ vi PREFIJO / conf / httpd.conf

Tendrá que editar su archivo httpd.conf para que su cgi se ejecute

En mi caso hice lo siguiente:

cambiar Escuchar 80 Escuchar 127.0.0.1:80

active la línea: LoadModule cgid_module modules / mod_cgid.so

cambió SeverName a: ServerName 127.0.0.1:80

cambié las rutas en DocumentRoot y Directory para adaptarme a mi sistema

cambió la ruta en ScriptAlias

habilitó la línea Scriptsock cgisock

cambié la ruta en el directorio después de ScriptAlias ​​para adaptarme a mi sistema

habilitó la línea AddHandler cgi-script .cgi

guardó los cambios y comenzó apache con:

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

Espero que esto ayude a cualquiera que esté luchando con esto;)

Peter Trevathan
fuente
Gracias por compartir, tengo problemas para seguir, ¿te importaría organizar esto un poco mejor?
user230910