Cataly...2::MP20(3pm)
π Catalyst::Engine::Apache2::MP20 π
okay bestie, gather round, because this is the Catalyst engine that's built specifically for Apache2 mod_perl 2.x and she is serving. it lives in the manual as Cataly...2::MP20(3pm) (yes the name got truncated, it's giving ctrl-c energy, we move on) and it's part of the User Contributed Perl Documentation. let's go π¦
β¨ NAME β¨
Catalyst::Engine::Apache2::MP20 β the Catalyst Apache2 mod_perl 2.x Engine. that's her. that's the whole name. slay. π
πΈ SYNOPSIS πΈ
so you wanna set your Catalyst app up as a mod_perl 2.x application in httpd.conf? say less, here's the whole config, character for character:
# Set up your Catalyst app as a mod_perl 2.x 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>
likeβ¦ look at that. PerlSwitches to load your lib, PerlModule MyApp to preload the whole app, SetHandler modperl with PerlResponseHandler MyApp at the root. and you can also run it at any non-root location, no gatekeeping. let Apache handle your static files with SetHandler default-handler, and bestie note that comment up there: you do not have to remove the Static::Simple plugin in production, because Apache will bypass Static::Simple if you configure it this way. no cap. π₯
and if you're not running at a root location in a VirtualHost, you'll probably need to set an Alias to where your static files live and allow access to that location β the config above shows exactly how (Alias /myapp/static /filesystem/path/to/MyApp/root/static, then a <Directory> with allow from all, then a <Location /myapp/static> with SetHandler default-handler). β¨
π DESCRIPTION π
This is the Catalyst engine specialized for Apache2 mod_perl version 2.x. short, sweet, iconic.
π ModPerl::Registry π
okay so this method is not recommended β I'm telling you that upfront, bestie, because the manpage says so β but you can also run your Catalyst application via a ModPerl::Registry script if you really want to. π«Ά
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 β heads up, you will need to create this yourself, it does not come pre-made, that's on you boo:
#!/usr/bin/perl
use strict;
use warnings;
use MyApp;
MyApp->handle_request( Apache2::RequestUtil->request );
use strict; use warnings; use MyApp; then MyApp->handle_request( Apache2::RequestUtil->request ); β that's the whole vibe check. π
π§ METHODS π§
ok_constant
(yes that's it, that's the whole listing, she's mysterious and we respect that π)
π OVERLOADED METHODS π
This class overloads some methods from Catalyst::Engine.
unescape_uri
π OVERLOADED METHODS π
This class overloads some methods from Catalyst::Engine.
unescape_uri
(it's listed twice in here. twice. double the unescape_uri, double the overloaded methods section, we don't ask questions, we just accept the blessing πβ¨)
β SEE ALSO β
CatalystCatalyst::EngineCatalyst::Engine::Apache2
go read those too, bestie, they're the extended universe. π¦
π AUTHORS π
- Sebastian Riedel
<sri@cpan.org> - Christian Hansen
<ch@ngmedia.com> - Andy Grundman
<andy@hybridized.org> - Tomas Doran
<bobtfish@bobtfish.net>
legends, all four of them, absolute main characters π
π COPYRIGHT AND LICENSE π
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. free software rights, we love to see it πΈ
and that's the whole page, bestie!! this was perl v5.36.0 dated 2022-12-06, straight from the User Contributed Perl Documentation, and it's filed under Cataly...2::MP20(3pm). mwah. periodt. π
ππ
π¦ where this page comes from
- debian bookworm: libcatalyst-engine-apache-perl 1.16-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- debian trixie: libcatalyst-engine-apache-perl 1.16-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu noble: libcatalyst-engine-apache-perl 1.16-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libcatalyst-engine-apache-perl 1.16-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libcatalyst-engine-apache-perl 1.16-3 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms