Help Test mod_perl 2 Release Candidates
stas writes "After almost 3 years of work mod_perl 2 is almost ready for its 2.0.0 release. We plan to make the gold release in a few weeks. Please help to test the release candidates by starting to port your mod_perl 1 applications to mod_perl 2. Make sure to read the documentation and report
any problems that you may have discovered. Thanks."
Not a troll, but something I'm genuinely wondering about - haven't things like J2EE, .Net and PHP made mod_perl obsolete? Back in the bad days of the web, the choice was C or Perl hooking directly into the Apache API to avoid spawning too many processes. Then along came Java servlets or ASP for those drawn to the dark side. Would anyone really consider mod_perl for a serious sized web application any more?
Well I did a port from mod_perl 1 to mod_perl 2 many months ago, and it wasn't too bad except for the lack of completed version 2 documentation and I wished I had more examples available to me. Most of the docs then were about 50 to 80 percent completed.
The porting itself was painless when I wasn't trying to set up a build environment across multiple Apache and perl versions and using libapreq2 (lib ApacheRequest) and mod_perl2 (well 1.99).
In order to have two different versions of things like Apache::Request (which have changed implementations without changing names), the modules get installed as $libdir/Apache2/Apache/Request.pm. Of course, you're then expected to "use Apache2" to add $libdir/Apache2 to your @INC path. Of course, this breaks every other element of the Perl toolchain that expects that @INC is not changed in such a radical fashion.
This release currently has problems with the PAUSE indexer, the CPAN installation tools, perldoc, and installation of manpages, because they all expect @INC to not be so badly hacked. Stas is trying to work out solutions with the community, but mostly in the form of "This is the way modperl2 works, please fix all your tools", and that's not flying well.
So, beware to those who install this release.
I've been using mod_perl2 over a year now, and it rocks hard. I've got my SMTP handling done through Apache::Qpsmtpd, and I'm currently created a DAV handler for mod_perl2.
I looked at mod_perl but found it overkill for what I needed (it offers alot of powerful features that I may look into though). I've had alot of success with mod_fastcgi (and FastCGI.pm). mod_fastcgi also creates persistant processes which cuts down _dramatically_ on the time to execute (well, mostly load) your cgi scripts. Of course, at the expense of a bit of RAM.
Would anyone really consider mod_perl for a serious sized web application?
Is that there's currently no way to restrict Perl* directives from being specified in .htaccess files. This makes it insecure for hosting servers to use mod_perl. Server admin certainly doesn't want normal clients to access mod_perl. Otherwise, mod_perl could be useful for server admins to customize their webserver.
mod_ruby on the other hand now has RubyRestrictDirectives to do exactly that.