I'm trying to profile some perl CGI someone else wrote, but I can't seem to get Apache::DProf working. My server runs Apache 2.0.46 with mod_perl 1.99 and Apache::DProf 0.09. I'm getting the following error when trying to start Apache when Apache::DProf is set to load in httpd.conf:
Starting httpd: [Mon Nov 01 22:37:13 2004] [error] Can't locate object + method "server_root_relative" via package "Apache::Server" at /usr/l +ib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache/DProf.pm line + 30.!Compilation failed in require at (eval 2) line 3.! [Mon Nov 01 22:37:13 2004] [error] Can't load Perl module Apache::DPro +f for server localhost:0, exiting...!
Now, if I'm not mistaken, server_root_relative is in Apache::ServerUtil. Looking at the relevant portion of DProf.pm, it appears to handle the differences between Apache1 and Apache2 correctly, so Apache::compat shouldn't be necessary (although I've tried that too):
package Apache::DProf; use strict; use Apache::DB (); use File::Path (); { no strict; $VERSION = '0.04'; } # Need to determine if we are in a mod_perl 1.x or 2.x environment # and load the appropriate modules BEGIN { use constant MP2 => eval { require mod_perl; $mod_perl::VERSIO +N > 1.99 }; die "mod_perl is required to run this module: $@" if $@; if (MP2) { require Apache2; require Apache::RequestRec; require Apache::ServerUtil; } } # Adjust to handle mp1 and mp2 differently my $prof_path; if (MP2) { my $s = Apache->server; $prof_path = $s->server_root_relative( $ENV{APACHE_DPROF_PATH} || "logs/dprof"); } else { $prof_path = Apache->server_root_relative($ENV{APACHE_DPROF_PATH} +|| "logs/dprof"); }
Any ideas why this module is failing for me? I've tried Googling on the server_root_relative error, but this inevitably directs me to Apache::compat suggestions, which I don't think are relevant to this module. Thanks,

-fp

In reply to Apache profiler errors by fuzzyping

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.