Loading ...
Sorry, an error occurred while loading the content.

handler help

Expand Messages
  • Tofu Optimist
    Hi. I need some help with handlers. I m a linux newbie. I freshly installed RH 9. I built perl 5.8.0 from source. As non-root, I downloaded source for Apache
    Message 1 of 2 , Aug 1, 2003
    • 0 Attachment
      Hi.

      I need some help with handlers.

      I'm a linux newbie. I freshly installed RH 9.
      I built perl 5.8.0 from source.

      As non-root, I downloaded source for
      Apache 1.3.28 and mod_perl 1.28
      and built them, using the instructions here

      http://perl.apache.org/docs/1.0/guide/install.html#A_Summary_of_a_Basic_mod_perl_Installation

      I've also been using Stas' book, Practical Mod Perl,
      and the mod_perl developer's cookbook.

      The only change I made to the
      A_Summary_of_a_Basic_mod_perl_Installation
      was using SU to root for the make install for
      mod_perl.

      The resulting Apache runs fine.

      The resuling mod_perl runs cgi-scripts fine.

      At times I'm running two servers on the same box, one
      listening
      to port 80 and one listening to port 8080.
      I turned off the ssl piece of both servers, as they
      were colliding
      on port (I think) 443. I'm not sure if this 2 server
      issue
      or the turning ssl is relevant to my problem.

      Now I'm trying to write my first mod_perl handler:

      PerlModule Apache::HandlerTest
      <Location /handlertest>
      SetHandler perl-script
      PerlHandler Apache::HandlerTest
      </Location>


      package Apache::HandlerTest;
      # File is called Apache/HandlerTest.pm
      # Path:
      /usr/lib/perl5/site_perl/5.8.0/Apache/HandlerTest.pm

      sub handler {
      my $r = shift; # Apache session object
      $r->content_type('text/html');
      $r->send_http_header;
      $r->print( "Hello, world." );
      }


      It dies with an

      Internal Server Error
      The server encountered an internal error or
      misconfiguration and was unable to complete your
      request

      Here's the end of the log


      [Thu Jul 31 18:34:08 2003] [error] [client
      192.168.1.2] Can't locate object method "content_type"
      via package "Apache::RequestRec" at
      /usr/lib/perl5/site_perl/5.8.0/Apache/HandlerTest.pm
      line 6.!
      [Thu Jul 31 18:34:08 2003] [error] [client
      192.168.1.2] File does not exist: /var/www/error

      As the problem seesm related to finding things, I
      tried making
      the handler simpler by using no functions

      sub handler {
      print "HTTP/1.0 200 OK\n";
      print "Content-Type: text/html\n\n";
      print "<html><body>Hello</body></html>";
      return 200;
      }

      This didn't work either --

      [Thu Jul 31 18:42:57 2003] [error] [client
      192.168.1.2] Can't locate object method "PRINT" via
      package "Apache::RequestRec" at
      /usr/lib/perl5/site_perl/5.8.0/Apache/HandlerTest.pm
      line 13.!
      [Thu Jul 31 18:42:57 2003] [error] [client
      192.168.1.2] File does not exist: /var/www/error

      I guess the print is really a call to $r->print()
      (Practical Mod_perl p 238).

      This newcoming to mod-perl seeks any help on next
      steps.

      RKG

      __________________________________
      Do you Yahoo!?
      Yahoo! SiteBuilder - Free, easy-to-use web site design software
      http://sitebuilder.yahoo.com
    • Perrin Harkins
      ... Go and change your locale from UTF8 to en_US or C. See this for why: http://archive.develooper.com/perl5-porters@perl.org/msg97360.html ... Okay... ...
      Message 2 of 2 , Aug 1, 2003
      • 0 Attachment
        On Fri, 2003-08-01 at 07:02, Tofu Optimist wrote:
        > I'm a linux newbie. I freshly installed RH 9.
        > I built perl 5.8.0 from source.

        Go and change your locale from UTF8 to en_US or C. See this for why:
        http://archive.develooper.com/perl5-porters@.../msg97360.html

        > As non-root, I downloaded source for
        > Apache 1.3.28 and mod_perl 1.28
        > and built them, using the instructions here
        >
        > http://perl.apache.org/docs/1.0/guide/install.html#A_Summary_of_a_Basic_mod_perl_Installation

        Okay...

        > [Thu Jul 31 18:34:08 2003] [error] [client
        > 192.168.1.2] Can't locate object method "content_type"
        > via package "Apache::RequestRec" at
        > /usr/lib/perl5/site_perl/5.8.0/Apache/HandlerTest.pm
        > line 6.!

        That's mod_perl 2. (There is Apache::RequestRec in mod_perl 1.) You
        must have an older one on your box and you are trying to run this
        handler with it. Figure out where you installed mod_perl 1 and use that
        instead.

        - Perrin
      Your message has been successfully submitted and would be delivered to recipients shortly.