Ejecutar scripts CGI con código Perl desde Apache en Windows

Los scripts CGI comienzan con una línea llamada “shebang” denominada así por los caracteres #!  (cuyo número mágico en ASCII es 23 21) los cuales indican que el archivo es un script ejecutable (por las funciones de tipo “exec”). En la misma se indica el intérprete que se utilizará para procesar el código. Por lo general, el intérprete ignora la línea debido a que comienza con el caracter #, utilizado para comentarios en muchos lenguajes.

Una vez que Apache esté configurado para utilizar scripts CGI, utilizará esta línea para poder procesar correctamente los CGIs cuando se los soliciten (la utiliza efectivamente para lanzar el intérprete asociado al script).

El formato de la línea shebang es:

#!/<PATH_ABSOLUTO>/<INTERPRETE>

donde indicamos el PATH_ABSOLUTO y el INTERPRETE que corresponda.

La línea del shebang típica de los scripts Perl en sistemas con Linux es:

#!/usr/bin/perl

Para mantenerla en sistemas Windows, lo que les recomiendo es:

  1. Determinar la unidad en que están los archivos del sitio asociado al VirtualHost
    • Si los archivos están en C:\www\site\, la unidad es C:
  2. Crear el directorio “usr” en esta unidad y dentro de éste, crear el directorio “bin”
  3. Buscar el el archivo “perl.exe” dentro directorio donde hayan instalado Perl
  4. Copiar “perl.exe” desde su ubicación original a la ruta recientemente creada

De esta manera logramos el objetivo deseado porque Windows entiende que:

  • /usr/bin/ es lo mismo que C:\usr\bin\ o D:\usr\bin\ dependiendo de la unidad
  • perl es lo mismo que perl.exe debido a que es el único ejecutable con ese nombre en ese directorio
Alternativamente, podríamos cambiar la línea para que apunte a la ubicación donde está instalado Perl en Windows. Esta opción tiene algunas contras en ciertas situaciones que obligarán a cambiarla con frecuencia:
  • Se pueden estar desarrollando los scripts del mismo sistema en computadoras con Windows y Linux
  • Perl puede estar instalado en distintas ubicaciones en cada computadora
  • Podemos tener varios checkouts del código en distintas unidades dentro de la misma computadora
Tagged with: ,
Publicado en Aplicaciones
2 comments on “Ejecutar scripts CGI con código Perl desde Apache en Windows
  1. […] Con el parámetro -w o -W en el shebang del script […]

  2. […] Vamos a hacer la prueba ejecutando scripts CGI con Perl, por lo que requerimos que se encuentre instalado en el sistema. Tal vez tengamos que hacer unos ajustes adicionales para poder ejecutar scripts CGI con código Perl desde Apache en Windows. […]

Los comentarios están cerrados.