Hi.
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
http://perl.apache.org), 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 ();
CGI->compile(':all');
1;
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 ();
CGI->compile(':all');
1;
Note : I do not remember why in the first script I "use
Bundle::Apache2", and not in the second.
Hope this helps,
André
P.S.
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 <[EMAIL PROTECTED]> 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/XSLoader.pm line
28.\nCompilation failed in require at
/usr/lib/perl5/Apache2/RequestRec.pm 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.