HTTP::Engine::Interface::ModPerl - mod_perl Adaptor for HTTP::Engine
# 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', }); x } # 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>
required configuration in httpd.conf
SetHandler modperl PerlOptions +SetupEnv
or
SetHandler perl-script
Daisuke Maki
Tokuhiro Matsuno
Kazuhiro Osawa
HTTP::Engine, Apache2
To install HTTP::Engine, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTTP::Engine
CPAN shell
perl -MCPAN -e shell install HTTP::Engine
For more information on module installation, please visit the detailed CPAN module installation guide.