perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier>
Subject Re: troubleshooting
Date Mon, 17 Mar 2008 13:13:54 GMT

First, you should probably pay more attention to what Perrin tells you, 
rather than to what I tell you below.  He is the real expert, I just dabble.
So you should probably first verify the version of Perl on your system, 
and maybe try an update of that, before you look at what follows.

This being said, I also manage two Debian systems of slightly different 
versions, and because of the different Debian package levels available I 
have to maintain at the moment a different mod_perl startup script on 
each.  The point is that, at some precise level of mod_perl versions 
(1.99xx, I don't remember exactly but you can find out on, the names of many modules changed, from 
Apache:: to Apache2::.
(It is annoying, but the new naming is much cleaner, so it's better in 
the long run).
Below I show my two startup scripts.  Probably not all of that applies 
to you, but it may be worth verifying.

mod_perl 2.x (more recent Debian version)

# Apache2 / mod_perl 2 startup script

   use Bundle::Apache2 ();
   use Apache2::compat ();
   use lib "/usr/local/lib/apache2/perllib";
   use ModPerl::Util ();
   use Apache2::RequestRec ();
   use Apache2::RequestIO ();
   use Apache2::RequestUtil ();
   use Apache2::Filter ();
   use Apache2::ServerUtil ();
   use Apache2::Connection ();
   use Apache2::Log ();
   use Apache2::Const -compile => qw(:common :log REDIRECT);
   use APR::Const -compile => ':common';
   use APR::Table ();
   use ModPerl::Registry ();
   use CGI ();

mod_perl 1.9x (older Debian version)

# Apache2 / mod_perl 2 startup script

   use Apache2 ();
   use Apache::compat ();
   use lib "/usr/lib/apache2/perllib";
   use ModPerl::Util ();
   use Apache::RequestRec ();
   use Apache::RequestIO ();
   use Apache::RequestUtil ();
   use Apache::Filter ();
   use Apache::ServerUtil ();
   use Apache::Connection ();
   use Apache::Log ();
   use Apache::Const -compile => qw(:common :log REDIRECT);
   use APR::Const -compile => ':common';
   use APR::Table ();
   use ModPerl::Registry ();
   use CGI ();

Note : I do not remember why in the first script I "use 
Bundle::Apache2", and not in the second.

Hope this helps,

And, by the way, if one of the experts here knows a better/cleaner way 
than the above, please let me know.

Beginner wrote:
> On 17 Mar 2008 at 7:43, Perrin Harkins wrote:
>> On Mon, Mar 17, 2008 at 7:06 AM, Beginner <> wrote:
>>>  I found an
>>>  upgraded package for my OS.
>> Do you mean that the OS auto-upgraded something, or that you upgraded
>> something manually?  What exactly was upgraded?
> It looks like logrotate shutdown httpd and http failed to start after 
> that. I did an update to spamassassin, clamav and courier last week 
> but that went fine and there were no issues.
>>>  My startup file has:
>>>  use Apache2::RequestRec ();
>>>  use Apache::Const -compile qw(ok);
>>>  use Template;
>>>  use Date::Calc;
> I think the Apache::Const should be Apache2::Const but it hasn't 
> stopped the error.
>> That looks fine.
>>>  Subroutine load redefined at /usr/lib/perl5/Apache2/ line
>>>  28.\nCompilation failed in require at
>>>  /usr/lib/perl5/Apache2/ line 24.
>> That sort of thing usually means that your mod_perl was not compiled
>> with the current perl and needs to be recompiled.
> mod_perl seems to come as part of the package on my version of 
> Debian. If i attempt to install I get "libapache2-mod-perl2 is 
> already the newest version".
> I am loath to go down the route of install modperl from source as it 
> kinda breaks the idea behind having a package manager.
> I'm am going to see if I can find a solution that maintains the 
> integrity of my package manager for now. If I haven't found a 
> solution by the end of the day I will have to go down the source 
> route.
> Thanx,
> Dp.

View raw message