perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier ...@ice-sa.com>
Subject Re: mod_perl installed via yum but not used by application (RedHat 6.5 Apache 2.2.15 mod_perl 2.0.4)
Date Thu, 15 Jan 2015 11:20:38 GMT
BOUX Frederik wrote:
> Hello,
> 
> I am using OTRS on a RedHat 6.5 with apache2 and mod_perl2. We are using these packages
(yum info feedback):
> 
> 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
> 
> We noticed a performance difference with the Development server. I can see in htop that
the apache user is spawning /usr/bin/perl processes to run all the perl scripts instead of
handling them in an httpd process. So I placed the following script in the same directory
as my index.pl to see if mod_perl was being used:
> 
> #!/usr/bin/perl
> print "Content-type: text/plain\n\n";
> print "Server's environment\n";
> foreach ( keys %ENV ) {
> print "$_\t$ENV{$_}\n";
> }
> 
> Dev shows these two variables that are completely missing on Sandbox:
> 
> MOD_PERL_API_VERSION 2
> MOD_PERL mod_perl/2.0.4
> 
> So I'm pretty sure mod_perl isn't being used . But as far as I can tell everything is
configured:
> 
> 1) /etc/httpd/conf.d/perl.conf contains the line: LoadModule perl_module modules/mod_perl.so
> 
> 2) /etc/httpd/conf/httpd.conf contains an Include: Include conf.d/*.conf
> 
> 3) this is the default .conf from OTRS but I can't find a mistake:
> 
> # 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>
> 
> 
> 
> And yet the module is loaded:
> 
> [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
> 
> 
> Anyone who can spot a mistake or who has additional steps to troubleshoot why mod_perl
isn't being used?
> 

Just a little comment : when you restart your server, the first line in the error log 
should clearly show if mod_perl is included or not.

Also, if it isn't, then all the mod_perl specific configuration lines above should trigger

an Apache error when it starts (and it would not start).
Errors such as
"PerlOptions" : unknown directive at line xxx ...

Unless your server actually starts with another configuration file set than the one you 
think..


Mime
View raw message