mod_perl não ativo no Apache / 2.2.15 (Red Hat)

0

Estou usando o OTRS em um RedHat 6.5 com apache2 e mod_perl2. Um dos meus servidores (ambiente do Sandbox) tem o seguinte (feedback das informações do yum):

Installed Packages
Name        : httpd
Arch        : x86_64
Version     : 2.2.15
Release     : 39.el6

Name        : mod_perl
Arch        : x86_64
Version     : 2.0.4
Release     : 11.el6_5

Observamos uma diferença de desempenho com o servidor de desenvolvimento. Então eu coloquei o seguinte script no mesmo diretório que o meu index.pl para ver se mod_perl estava sendo usado:

#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "Server's environment\n";
foreach ( keys %ENV ) {
print "$_\t$ENV{$_}\n";
}

O Sandbox está faltando duas linhas na parte "ambiente" da saída em comparação com o Dev:

MOD_PERL_API_VERSION 2

MOD_PERL mod_perl / 2.0.4

Então, tenho certeza que o mod_perl não está sendo usado. Mas até onde eu sei, tudo está configurado:

1) /etc/httpd/conf.d/perl.conf contém a linha:     LoadModule perl_module modules / mod_perl.so

2) /etc/httpd/conf/httpd.conf contém um include:     Incluir conf.d / *. Conf

3) este é o arquivo .conf padrão do OTRS, mas não consigo encontrar um erro:     

# Setup environment and preload modules
Perlrequire /opt/otrs/scripts/apache2-perl-startup.pl

# Reload Perl modules when changed on disk
PerlModule Apache2::Reload
PerlInitHandler Apache2::Reload

# general mod_perl2 options
<Location /otrs>
#        ErrorDocument 403 /otrs/customer.pl
    ErrorDocument 403 /otrs/index.pl
    SetHandler  perl-script
    PerlResponseHandler ModPerl::Registry
    Options +ExecCGI
    PerlOptions +ParseHeaders
    PerlOptions +SetupEnv

    <IfModule mod_version.c>
        <IfVersion < 2.4>
           Order allow,deny
           Allow from all
        </IfVersion>
        <IfVersion >= 2.4>
            Require all granted
        </IfVersion>
    </IfModule>
    <IfModule !mod_version.c>
        Order allow,deny
        Allow from all
    </IfModule>
</Location>

# mod_perl2 options for GenericInterface
<Location /otrs/nph-genericinterface.pl>
    PerlOptions -ParseHeaders
</Location>

</IfModule>

No entanto, o módulo está carregado:

[user@server httpd]$ httpd -M | grep perl
Syntax OK
perl_module (shared)
[user@server httpd]$ httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

Qualquer um que consiga identificar um erro ou que tenha etapas adicionais para descobrir porque o mod_perl não está sendo usado?

    
por HoD 13.01.2015 / 17:41

1 resposta

0

Então, se alguém acabar aqui depois de googlar: tem algo a ver com a linha 16 no zzz_otrs.conf padrão:

<IfModule mod_version.c>

como teste eu mudei para

<IfModule core.c>

E então tudo funciona como você esperaria. Esta é obviamente uma solução suja, se o mod_perl não estiver instalado corretamente, isso fará com que o apache falhe. Se eu encontrar uma solução melhor (mais geral) do que isso, atualizarei.

    
por 27.01.2015 / 13:53