CONTENTS

NAME

Plack::Handler::Apache2 - Apache 2.0 mod_perl handler to run PSGI application

SYNOPSIS

# in your httpd.conf
<Location />
SetHandler perl-script
PerlResponseHandler Plack::Handler::Apache2
PerlSetVar psgi_app /path/to/app.psgi
</Location>

# Optionally preload your apps in startup
PerlPostConfigRequire /etc/httpd/startup.pl

See "STARTUP FILE" for more details on writing a startup.pl.

DESCRIPTION

This is a mod_perl handler module to run any PSGI application with mod_perl on Apache 2.x.

If you want to run PSGI applications behind Apache instead of using mod_perl, see Plack::Handler::FCGI to run with FastCGI, or use standalone HTTP servers such as Starman or Starlet proxied with mod_proxy.

CREATING CUSTOM HANDLER

If you want to create a custom handler that loads or creates PSGI applications using other means than loading from .psgi files, you can create your own handler class and use call_app class method to run your application.

package My::ModPerl::Handler;
use Plack::Handler::Apache2;

sub get_app {
  # magic!
}

sub handler {
  my $r = shift;
  my $app = get_app();
  Plack::Handler::Apache2->call_app($r, $app);
}

STARTUP FILE

Here is an example startup.pl to preload PSGI applications:

#!/usr/bin/env perl

use strict;
use warnings;
use Apache2::ServerUtil ();

BEGIN {
    return unless Apache2::ServerUtil::restart_count() > 1;

    require lib;
    lib->import('/path/to/my/perl/libs');

    require Plack::Handler::Apache2;

    my @psgis = ('/path/to/app1.psgi', '/path/to/app2.psgi');
    foreach my $psgi (@psgis) {
        Plack::Handler::Apache2->preload($psgi);
    }
}

1; # file must return true!

See http://perl.apache.org/docs/2.0/user/handlers/server.html#Startup_File for general information on the startup.pl file for preloading perl modules and your apps.

Some things to keep in mind when writing this file:

AUTHOR

Tatsuhiko Miyagawa

CONTRIBUTORS

Paul Driver

Ævar Arnfjörð Bjarmason

Rafael Kitover

SEE ALSO

Plack