Perl Programming Page 5 - Introduction to mod_perl (part 2): mod_perl Quickstart |
mod_perl is about running both scripts and handlers. Although I have started to present mod_perl using scripts because it's easier if you have written CGI scripts before, the more advanced use of mod_perl is about writing handlers. But have no fear. As you will see in a moment, writing handlers is almost as easy as writing scripts. To create a mod_perl handler module, all I have to do is to wrap the code I have used for the script into a handler subroutine, add a statement to return the status to the server when the subroutine has successfully completed, and append a package declaration at the top of the code. Just as with scripts you can use either the CGI API you are probably used to (save the following as Rules1.pm): or the Apache Perl API that allows you to interact more intimately with the Apache core by providing an API unavailable under regular Perl. Of course in the simple example that I show, using any of the approaches is fine, but when you need to use the API, this version of the code should be used (save as Rules2.pm): Create a directory called ModPerl under one of the directories in @INC (e.g. /usr/lib/perl5/site_perl/5.005), and put Rules1.pm Rules2.pm into it, the files should include the code from the above examples. To find out what the @INC directories are, execute: On my machine it reports: Now add the following snippet to httpd.conf to configure mod_perl to execute the ModPerl::Rules::handler subroutine whenever a request to mod_perl_rules1 is made: Now you can issue a request to: http://localhost/mod_perl_rules1 and just as with our mod_perl_rules.pl scripts you will see: as the response. To test the second module ModPerl::Rules2 add the sameconfiguration, while replacing all 1's with 2's: PerlModule ModPerl::Rules2<Location /mod_perl_rules2> SetHandler perl-script PerlHandler ModPerl::Rules2</Location>[code] And to test use the URI: http://localhost/mod_perl_rules2
blog comments powered by Disqus |