Cataly...2::MP19(3pm)

πŸ“¦
version 1.16 Β· 2 versions
  • 1.16 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 1.16 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– Catalyst::Engine::Apache2::MP19 πŸ’–

okay bestie, so this is the Catalyst::Engine::Apache2::MP19 page β€” that's the Catalyst Apache2 mod_perl 1.99x Engine, and it's filed under section 3pm of the perl docs. yes we're going deep into the mod_perl lore today. grab a πŸ“ and let's go.


✨ NAME ✨

Catalyst::Engine::Apache2::MP19 β€” the Catalyst engine that is specifically built for Apache2 with mod_perl version 1.99x. that's it. that's the name. iconic.


🌸 SYNOPSIS 🌸

here's the whole setup, no cap. you're setting up your Catalyst app as a mod_perl 1.99x application in httpd.conf:

# Set up your Catalyst app as a mod_perl 1.99x application in httpd.conf
PerlSwitches -I/var/www/MyApp/lib

# Preload your entire application
PerlModule MyApp

<VirtualHost *>
    ServerName    myapp.hostname.com
    DocumentRoot  /var/www/MyApp/root

    <Location />
        SetHandler          modperl
        PerlResponseHandler MyApp
    </Location>

    # you can also run your app in any non-root location
    <Location /some/other/path>
        SetHandler          perl-script
        PerlResponseHandler MyApp
    </Location>

    # Make sure to let Apache handle your static files
    # (It is not necessary to remove the Static::Simple plugin
    # in production; Apache will bypass Static::Simple if
    # configured in this way)

    <Location /static>
        SetHandler          default-handler
    </Location>

    # If not running at a root location in a VirtualHost,
    # you'll probably need to set an Alias to the location
    # of your static files, and allow access to this location:

    Alias /myapp/static /filesystem/path/to/MyApp/root/static
    <Directory /filesystem/path/to/MyApp/root/static>
        allow from all
    </Directory>
    <Location /myapp/static>
        SetHandler default-handler
    </Location>

</VirtualHost>

that's literally it bestie, copy it, tweak the paths, slay πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

This is the Catalyst engine specialized for Apache2 mod_perl version 1.99x. very niche, very demure, very specific. πŸŽ€


πŸ’€ WARNING πŸ’€

⚠️ okay so real talk: mod_perl 1.99 was the beta version for mod_perl 2.0. Upgrading to 2.0 is strongly recommended. like. genuinely. please. 🫢

😭 CGI ISSUES 😭

not the CGI drama... 😭 so to run Catalyst under mod_perl 1.99 you will need to downgrade CGI to version 3.07, because it has dropped support for 1.99 in later versions. so if you're on a newer CGI and everything's on fire, that's why. not me finding out the hard way fr fr.


🌈 ModPerl::Registry 🌈

so while this method is not recommended, you can also run your Catalyst application via a ModPerl::Registry script. just so you know it exists, bestie.

httpd.conf:

PerlModule ModPerl::Registry
Alias / /var/www/MyApp/script/myapp_registry.pl/

<Directory /var/www/MyApp/script>
    Options +ExecCGI
</Directory>

<Location />
    SetHandler          perl-script
    PerlResponseHandler ModPerl::Registry
</Location>

and then script/myapp_registry.pl β€” you will need to create this yourself, it does not come pre-made:

#!/usr/bin/perl

use strict;
use warnings;
use MyApp;

MyApp->handle_request( Apache::RequestUtil->request );

there you go, that's the whole thing. 🧚


πŸ‘‘ METHODS πŸ‘‘

⭐ ok_constant

that's the one and only method listed here. ok_constant. periodt. πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

go read these next, bestie, they're the whole friend group:

  • Catalyst
  • Catalyst::Engine
  • Catalyst::Engine::Apache2

πŸ’œ AUTHORS πŸ’œ

the legends who made this happen, show some respect:

  • Sebastian Riedel <sri@cpan.org>
  • Christian Hansen <ch@ngmedia.com>
  • Andy Grundman <andy@hybridized.org>
  • Tomas Doran <bobtfish@bobtfish.net>

This software is copyright (c) 2010 by The "AUTHORS".

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


and that's the whole page, bestie!! ✨ this was perl v5.36.0, dated 2022-12-06, and it lives under Cataly...2::MP19(3pm) in the perl docs. go forth and mod_perl responsibly. mwah. πŸ’–πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from