Introduction
The Apache/Perl module list is here for the same reason as the
main
Perl module list, to change duplication of effort into cooperation
and help to save the world! Apache/Perl modules are somewhat different
from the many others found on CPAN. Most Perl modules are
"building blocks", developers use them
to build applications or even more building blocks.
It just so happens
that Apache/Perl modules are encapsulted inside a namespace and .pm file.
However, this does not make them all building blocks, many are just like
apache modules written in C, you install, edit the server configuration
files and you're done. Before you start a new module, consider this:
Apache/Perl modules are useless outside of mod_perl and Apache. Do your best
to design such that your Apache::* module will make good use of the
building blocks found on CPAN, putting together new building blocks where
appropriate and simply glue them together with the Apache
API, keeping the Apache::* modules very small.
These modules will also serve as good examples, showing you where modules
can step in during a stage of a request with Perl*Handler callbacks.
You'll also see how and when to use the Apache API methods.
Playing Your Part
Apache and Perl are world-wide collaborative efforts, naturally, the
Apache/Perl integration project is the same.
You've started on the right foot simply by reading this document, thanks!
Please be sure you've read the
main
Perl module list, all that is said there is relevant here!
If you have any additions or changes for the list, please send them to the Apache/Perl mailing list or to me.
If you wish to share you module(s) the Perl way, by putting them on CPAN, send a request to me or modules@perl.com to get set up with a PAUSE user id and directory.
HINT: For a nice set of template files try this:
% h2xs -AX -n Apache::YourPackageName
Apache:: * PerlHandler's Embperl bdcf Embed Perl in HTML GRICHTER ePerl Rdpr Fast emulated Embedded Perl (ePerl) RSE FTP i Full-fledged FTP proxy PMKANE JavaScript bdpf Generate JavaScript code ABH Registry Rmpf Run unaltered CGI scripts APML Sandwich bmpO Layered document (sandwich) maker DOUGM SSI bmpO Implement server-side includes in Perl KWILLIAM Stage bdpf Manage a document staging directory ANDK Status Rmpf Embedded interpreter runtime status APML WDB bdpf Database query/edit tool using DBI JROWE * PerlHeaderParserHandler's AgentDeny bdpf Deny abusive User-Agents ROBH * PerlAuthenHandler's Authen bmpf Perl Apache authentication utilities SKANE AuthCookie bdpO Authen + Authz via cookies EBARTLEY AuthenDBI bmpO Authenticate via Perl's DBI MERGL AuthExpire cmpO Expire Basic auth credentials DOUGM AuthenGSS cdpf Generic Security Service (RFC 2078) DOUGM AuthenLDAP i LDAP authentication module MARKK BasicCookieAuth cdpf Accept cookie or basic auth creds PMKANE DBILogin bdpf Authenticate to backend database JGROENVEL DCELogin bdpf Obtain a DCE login context DOUGM * PerlAuthzHandler's AuthCookie cdpf Authen + Authz via cookies EBARTLEY AuthzAge bmpf Authorize based on age APML AuthzDCE cdpf DFS/DCE ACL based access control DOUGM AuthzDBI bmpO Group authorization via Perl's DBI MERGL RoleAuthz i Role-based authorization DOUGM * PerlAccessHandler's AccessLimitNum bmpf Limit user access by number of requests APML DayLimit bmpf Limit access based on day of week APML * PerlTypeHandler's AcceptLanguage bdpf Send file type based on language pref ROBH * PerlTransHandler's (May also include a PerlHandler) DynaRPC i Dynamically translate URIs into RPCs DOUGM Junction i Mount remote webserver namespace DOUGM LowerCaseGETs bdpf Lowercase URI's when needed PLISTER MsqlProxy bmpf Translate URI's into mSQL queries APML ProxyPassThru bdpO Skeleton for vanilla proxy RMANGI ProxyCache i Caching proxy DOUGM * PerlFixupHandler's HttpEquiv bdpf HTML HTTP-EQUIV tags to HTTP headers ROBH Timeit bmpf Benchmark PerlHandlers APML * PerlLogHandler's DumpHeaders bdpf Watch HTTP transaction via headers DOUGM WatchDog c Look for problematic URIs DOUGM * Server Configuration ConfigLDAP i Config via LDAP and <Perl> MARKK ConfigDBI i Config via DBI and <Perl> MARKIM ModuleConfig cmcO Interface to configuration API DOUGM PerlSections bmpO Utilities for <Perl> sections APML * Database DBI bmpO Persistent DBI connection mgmt. MERGL Sybase::DBlib bmpO Persistent DBlib connection mgmt. BMILLET Mysql bdpO Persistent connection mgmt. for Mysql NJENSEN * Interfaces and integration with various Apache C modules Constants Rmcf Constants defined in httpd.h APML Include Rmpf mod_include + Apache::Registry handler APML Mime bmcf Interface to mod_mime functionality MDORMAN Options Rmpf Import Apache::Constants 'options' APML Scoreboard cmcO Interface to scoreboard API DOUGM Servlet ampO Interface to the Java Servlet engine IKLUFT Sfio cmcO Interface to r->connection->client->sf* DOUGM * Misc Byterun i Run Perl bytecode modules DOUGM Debug Rmpf mod_perl debugging utilities APML ErrorLog c error_log interfaces FLETCH FakeRequest ampO Implement Apache methods off-line APML Mmap bdcf Share data via Mmap module FLETCH OutputChain bmpO Chain output of stacked handlers HONZAP PUT cdpf HTTP PUT method handler module PLISTER RegistryLoader bmpf Apache::Registry startup script loader APML Safe ampO Adaptation of "safecgiperl" APML Session cmpf Maintain client <-> httpd session/state APML StatINC bmpf Reload require'd files when updated APML State i Powerful state engine RSE
ABH Ask Hansen <ask@netcetera.dk> ANDK Andreas König <a.koenig@franz.ww.TU-Berlin.DE> APML The Apache/Perl Mailing List <modperl@listproc.itribe.net> BMILLETT Brian Millett <bpm@techapp.com> DOUGM Doug MacEachern <dougm@osf.org> EBARTLEY Eric Bartley <bartley@pdn.cc.purdue.edu> FLETCH Mike Fletcher <lemur1@mindspring.com> GRICHTER Gerald Richter <richter@ecos.de> HMUELLER Hanno Mueller <hmueller@mail.kabel.de> HONZAP Honza Pazdziora <adelton@INFORMATICS.MUNI.CZ> IKLUFT Ian Kluft <ikluft@cisco.com> JGROV John D Groenveld <groenvel@cse.psu.edu> JROWE Jeff Rowe <beowulf@cscsun4.larc.nasa.gov> KWILLIAM Ken Williams <ken@forum.swarthmore.edu> MARKIM Mark A. Imbriaco <mark@itribe.net> MARKK Mark Kennedy <mtk@ny.ubs.com> MDORMAN Michael Alan Dorman <mdorman@calder.med.miami.edu> MERGL Edmund Mergl <E.Mergl@bawue.de> NJENSEN Neil Jensen <njensen@habaneros.com> PLISTER Peter Lister <p.lister@cranfield.ac.uk> PMKANE Patrick Michael Kane <modus@enews.com> RMANGI Rick Mangi <rmangi@tgix.com> ROBH Rob Hartill <robh@imdb.com> RSE Ralf S. Engelschall <rse@engelschall.com> SKANE Stephen E Kane <sek112@elvis.arl.psu.edu>