Apache HTTP Server (Español)/mod_perl (Español)

From ArchWiki
Esta traducción de Apache HTTP Server/mod_perl fue revisada el 2020-12-02. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Traducido desde el projecto:

mod_perl junta el poder completo del lenguaje de programación Perl y el Servidor HTTP Apache. Puede usar Perl para administrar Apache, responder a peticiones de las paginas webs y mucho más.

Instalación

Instale en paquete mod_perlAUR.

Configuración

Cargue el modulo a través del archivo de configuración de Apache httpd.conf:

LoadModule perl_module modules/mod_perl.so

Permita a Perl ejecutar scripts en ciertos directorios

Hay dos maneras posibles para habilitar el modulo mod_perl:

Utilizando hosts virtuales

Añada un host virtual con la siguiente configuración. Por ejemplo:

/etc/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost perlwebtest:80>
	Servername perlwebtest
	DocumentRoot /srv/http/perlwebtest
	ErrorLog /var/log/httpd/perlwebtest-error.log
	CustomLog /var/log/httpd/perlwebtest-access.log combined
	<Directory /srv/http/perlwebtest>
		AddHandler perl-script .pl
		PerlResponseHandler ModPerl::Registry
		Options +ExecCGI
		PerlOptions +ParseHeaders
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

Asegúrese que /etc/httpd/conf/httpd.conf incluya el host virtual creado:

Include conf/extra/httpd-vhosts.conf

Asegúrese que no tenga la opción Options Indexes FollowSymLinks.

Añada «perlwebtest» como host local en /etc/hosts, usando el hostname de la maquina en sunombredehost:

127.0.0.1  localhost sunombredehost perlwebtest

En un subdirectorio

Añada lo siguiente en su archivo de configuración principal:

/etc/httpd/conf/httpd.conf
Alias /perlwebtest/ /srv/http/perlwebtest/
<Location /perlwebtest/>
      AddHandler perl-script .pl
      AddHandler perl-script .cgi
      PerlResponseHandler ModPerl::Registry
      PerlOptions +ParseHeaders
      Options +ExecCGI
      Order allow,deny
      Allow from all
</Location>

Habilite Perl en los listados de directorios

Cree /etc/httpd/conf/extra/perl_module.conf:

# Módulos requeridos: dir_module, perl_module

<IfModule dir_module>
        <IfModule perl_module>
                DirectoryIndex index.pl index.html
        </IfModule>
</IfModule>

E incluyalo en /etc/httpd/conf/httpd.conf:

# Perl
Include conf/extra/perl_module.conf

Pruebelo

Cree index.pl en /srv/http/perlwebtest:

#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "mod_perl now works\n";

Reinicie el servicio httpd.service de Apache y haga que recargue su configuración.

Finalmente, dependiendo en la configuración alternativa elegida, visite: