Página 1 de 1

Problemas con Apache2 y Perl

NotaPublicado: 2008-05-05 17:03 @752
por jarjor
Hola. Tengo Apache2 en mi GNU/Linux y no sé si he hecho algo mal o es que me falta algo para que se ejecuten los cgi-bin.

He hecho lo siguiente:

- me bajé el módulo de Perl y lo habilité

- metí esto en apache2.conf

Código: Seleccionar todo
AddHandler cgi-script .cgi
<Files ~ “\.pl$”>
    Options +ExecCGI
</Files>
<Files ~ “\.cgi$”>
    Options +ExecCGI
</Files>


- en el directorio donde tengo las páginas html /var/www le dí a todos los cgi los permisos de lectura y ejecución (chmod 755).

Contenido de /var/www/SCRIPT2.cgi:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use cgi;
print "hola a todos\n";
exit(1);
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4


Y me sale esto:
Código: Seleccionar todo
Forbidden

You don't have permission to access /SCRIPT2.cgi on this server.
Apache/2.2.4 (Ubuntu) mod_perl/2.0.2 Perl/v5.8.8 Server at localhost Port 8


¿Alguien me puede ayudar?

NotaPublicado: 2008-05-05 17:51 @785
por explorer
Bienvenido a los foros de Perl en Español, jarjor.

Lo primero, decirte que si te refieres al módulo mod_perl, no tiene nada que ver con lo que quieres hacer, que es hacer funcionar un cgi. No es necesario ese módulo.

Otra cosa. Lo normal es reservar un directorio para guardar allí los cgi, por seguridad.

Según el How-to de Apache, es recomendable ver el contenido del error.log, cuando te sale el error del Forbbiden.

Por ejemplo, yo tengo una máquina con esta configuración:
Código: Seleccionar todo
AddHandler cgi-script .cgi .sh .pl .ida
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory /usr/lib/cgi-bin/>
    AllowOverride None
    Options ExecCGI FollowSymLinks -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>


Con AddHandler indica las extensiones de ficheros que se podrán ejecutar.
ScriptAlias asocia el path del URL con el path absoluto dentro del ordenador.
Y finalmente, <Directory> da los permisos de acceso y ejecución.

Naturalmente, /usr/lib/cgi-bin tendrá los permisos de lectura y ejecución para el usuario que ejecuta el servidor web, así como el resto de scripts.