Mod_Perl configuration para múltiplos domínios

1

Lendo a documentação do módulo Mod_Perl, podemos configurá-lo por domínio, o que quero dizer, podemos configurá-lo para ser executado em todos os domínios ou domínios específicos somente.

O que eu vejo nos documentos é:

Registry Scripts

To enable registry scripts add to httpd.conf:

Alias /perl/ /home/httpd/2.0/perl/
<Location /perl/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Location>

and now assuming that we have the following script:

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

saved in /home/httpd/httpd-2.0/perl/rock.pl. Make the script executable and readable by everybody:

% chmod a+rx /home/httpd/httpd-2.0/perl/rock.pl

Of course the path to the script should be readable by the server too. In the real world you probably want to have a tighter permissions, but for the purpose of testing, that things are working, this is just fine.

Pelo que entendi acima, podemos executar scripts Perl apenas em uma pasta específica na qual colocamos a diretiva acima. Então, novamente, podemos fazer essa diretiva por domínio para todos os domínios ou para um número específico de domínios?

    
por daliaessam 06.10.2012 / 11:41

2 respostas

0

A documentação que você citou é apenas um exemplo. Você pode habilitar o Registro mod_perl para executar scripts Perl com uma diretiva <Location> ou mesmo <LocationMatch> em qualquer lugar que você desejar. Se você quiser apenas em determinados domínios, coloque-os em <VirtualHost> diretivas e não fora de um VirtualHost.

    
por 08.10.2012 / 07:50
0

Depois de procurar, cavar, aqui estão os passos em curto e claro, por instalação e configuração do domínio mod_perl.

instale o mod_perl usando cpan, do seu shell:

%cpan
cpan> install mod_perl
cpan>exit

Faça login no seu WHM e, em seguida:

*)- WHM: Main >> Service Configuration >> Apache Configuration >> Include Editor
        under Pre Main Include:
        LoadModule perl_module modules/mod_perl.so
        then click "Update"
*) -    Login as root from telnet.
*) -    % mkdir - p /usr/local/apache/conf/userdata/std/2/username/domain.com
*)- cd /usr/local/apache/conf/userdata/std/2/username/domain.com
*)- % pico custom.conf
*)- put this code in the file custom.conf:

  Alias /apps/ /home/username/public_html/apps/
  <Location /apps/>
      SetHandler perl-script
      PerlResponseHandler ModPerl::Registry
      PerlOptions +ParseHeaders
      Options +ExecCGI
      Order allow,deny
      Allow from all
  </Location>


*)- % /scripts/ensure_vhost_includes --all-users

*)- create the folder mkdir -p /home/username/public_html/apps/
*)- put a test script in the /home/username/public_html/apps/ folder
*)- call the test script: http://domain.com/apps/test.cgi
*)- the output should be:
    mod_perl 2.0 rocks!
    MOD_PERL: mod_perl/2.0.7
*)- replace username by the domain username, domain.com with the actual domain name. Also rename the apps folder to anything you want to run mod_perl scripts direct.

o código test.cgi do script de teste é:

#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "mod_perl 2.0 rocks!\n";
#my $q = $ENV{MOD_PERL} ? CGI->new(shift @_) : CGI->new();
print "MOD_PERL: " . $ENV{MOD_PERL},"\n";

o cpanel no httpd.conf diz:

# To customize this VirtualHost use an include file at the following location
# Include "/usr/local/apache/conf/userdata/std/2/gamept/domain.com/*.conf"

Obrigado a todos

    
por 13.10.2012 / 02:33