|
NAMEHTTP::Engine::Interface::ModPerl - mod_perl Adaptor for HTTP::EngineSYNOPSIS# App.pm package App; use Mouse; # or use Moose or use Any::Moose use Data::Dumper; use HTTP::Engine; sub setup_engine { my($self, $conf) = @_; $conf->{request_handler} = sub { $self->handle_request(@_) }; HTTP::Engine->new( interface => $conf, ); } sub handle_request { my($self, $req) = @_; HTTP::Engine::Response->new( status => 200, body => Dumper($req), ); } # app.pl use strict; use warnings; use App; App->new->setup_engine({ module => 'ServerSimple', args => { port => 9999 }, })->run; # App/ModPerl.pm package App::ModPerl; use Mouse; # or use Moose or use Any::Moose extends 'HTTP::Engine::Interface::ModPerl'; use App; sub create_engine { my($class, $r, $context_key) = @_; App->new->setup_engine({ module => 'ModPerl', }); } # in httpd.conf PerlSwitches -Mlib=/foo/bar/app/lib <VirtualHost 127.0.0.1:8080> <Location /> SetHandler modperl PerlOptions +SetupEnv PerlResponseHandler App::ModPerl </Location> </VirtualHost> When you move the same application by two or more server name. Because the reason is because it makes instance every combination of SERVER_NAME, SERVER_PORT and DOCUMENT_ROOT. # in httpd.conf PerlSwitches -Mlib=/foo/bar/app/lib <VirtualHost 127.0.0.1:8080> ServerName www.example.com ServerAlias host1.example.com ServerAlias host2.example.com ServerAlias host3.example.com <Location /> SetHandler modperl PerlOptions +SetupEnv PerlSetEnv HTTP_ENGINE_CONTEXT_KEY YOUR_CHOICE_APPLICATION_UNIQUE_KEY PerlResponseHandler App::ModPerl </Location> </VirtualHost> CONFIGrequired configuration in httpd.confSetHandler modperl PerlOptions +SetupEnv or SetHandler perl-script AUTHORSDaisuke MakiTokuhiro Matsuno Kazuhiro Osawa SEE ALSOHTTP::Engine, Apache2
Visit the GSP FreeBSD Man Page Interface. |