• Publicidad

Cómo configurar mod_perl en el Apache

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Cómo configurar mod_perl en el Apache

Notapor perlo » 2006-11-10 14:33 @648

¿Cómo se configura el mod_perl en el Apache? ¿Alguien sabe cómo hacerlo?
perlo
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2006-11-08 07:55 @371

Publicidad

Notapor explorer » 2006-11-10 15:40 @694

Si usas Linux, y una distribución moderna, no tienes que hacer prácticamente nada, ya que la instalación de mod_perl guardará y configurará los ficheros de Apache para admitirlo.

Básicamente, los pasos, después de instalar la librería mod_perl.so o mod_perl.dll, es hacer que Apache lea un fichero de configuración (que suele estar dentro de la carpeta mods-available) en la que aparezca:

Código: Seleccionar todo
#PerlModule Apache2

PerlRequire "/etc/apache2/startup.pl"
#  PerlFreshRestart On
Alias /perl/ /var/www/perl-scripts/
<Location /perl/>
        SetHandler perl-script
        PerlResponseHandler ModPerl::Registry
#       PerlHandler ModPerl::Registry
        Options +ExecCGI +Includes
</Location>
<Location /perl-status>
        SetHandler  perl-script
        PerlHandler Apache2::Status
</Location>
PerlSetVar StatusOptionsAll On
PerlSetVar StatusTerse On
PerlSetVar StatusTerseSize On
PerlSetVar StatusTerseSizeMainSummary On

#NO HACE FALTA ESTO!!!
#PerlModule B::TerseSize
En donde

* PerlRequire sólo es necesario si queremos que se ejecute un script al principio en donde se cargarán los módulos que necesitarán el resto de scripts.
* Alias y Location indican el lugar donde colocaremos los scripts que queremos ejecutarlos bajo mod_perl. Dentro de Location está lo principal: la línea SetHandler indica que lo que está dentro de esa carpeta se debe ejecutar como un perl-script, por lo que lo hará a través de mod_perl y no como un simple CGI.
* perl-status es interesante para ver estadísticas de uso y ocupación de memoria.
* Con PerlSetVar se pueden activar algunas opciones interesantes
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Consulta

Notapor perlo » 2006-11-13 06:36 @316

Gracias por contestar, pero ahora, ¿cómo me doy cuenta de que está funcionando el mod_perl , y no el viejo?

Saludos
perlo
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2006-11-08 07:55 @371

Notapor explorer » 2006-11-13 06:50 @326

Si antes las URL eran del tipo
http://tudominio.net/cgi-bin/script.pl

ahora es
http://tudominio.net/perl/script.pl
Deberás cambiarlas en tus páginas web.

/perl es el camino indicado por el Alias que apunta a /var/www/perl-scripts, y /perl es también la 'Location' que ha registrado ese lugar como sitio donde ejecutar scripts Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor perlo » 2006-11-13 13:53 @620

Me aparecen unos errores
Invalid command 'PerlFreshRestart', perhaps mis-spelled or defined by a module not included in the server configuration

Starting httpd:
[Mon Nov 13 15:46:57 2006] [warn] The Alias directive in /etc/httpd/conf/httpd.conf at line 622 will probably never match because it overlaps an earlier Alias

[Mon Nov 13 16:53:18 2006] [error] Can't locate Apache2.pm in @INC (@INC contains: /usr/lib/perl5/5.8.7/i386-linux /usr/lib/perl5/5.8.7 /usr/lib/perl5/site_perl/5.8.7/i386-linux /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.7/i386-linux /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.6/i386-linux /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl . /etc/httpd) at (eval 2) line 3.\n
[Mon Nov 13 16:53:18 2006] [error] Can't load Perl module Apache2 for server localhost:80, exiting...

Me falta instalar algún otro módulo en especial, ¿¿el apache2 ya lo instalé?? ¿que estoy haciendo mal, alguna cosa que no creé?? Si tienen alguna pista......yo no me doy cuenta como solucionarlo.
Gracias por vuestra ayuda,
perlo
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2006-11-08 07:55 @371

Notapor explorer » 2006-11-13 17:05 @753

El primer error es muy claro y te lo dice: no entiende la variable 'PerlFresRestart' porque quizás está definida en un módulo que no ha sido cargado. Eso significa que el módulo mod_perl.so no ha sido cargado por el servidor web. Deberás agregar a la configuración la opción de cargar ese módulo. En un Linux moderno se suele hacer con el programa a2enmod desde la línea de comandos y siendo root.

El segundo error dice que ya existe un Alias /perl en algún otro sitio.

El tercer error dice que no encuentra el módulo Apache2.pm en el sistema. Este módulo se usaba para ajustar la variable @INC, pero ya no es necesaria en las últimas versiones de mod_perl. Localiza el script que está ejecutando esa línea y coméntala o bórrala.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados