README
1 The Apache/Perl integration project brings together the full power of
2 the Perl programming language and the Apache HTTP server. This is
3 achieved by linking the Perl runtime library into the server and
4 providing an object oriented Perl interface to the server's C language
5 API.
6 These pieces are seamlessly glued together by the `mod_perl' server
7 plugin, making it is possible to write Apache modules entirely in
8 Perl. In addition, the persistent interpreter embedded in the server
9 avoids the overhead of starting an external interpreter program and
10 the additional Perl start-up (compile) time.
11
12 Without question, the most popular Apache/Perl module is
13 Apache::Registry module. This module emulates the CGI environment,
14 allowing programmers to write scripts that run under CGI or
15 mod_perl without change. Existing CGI scripts may require some
16 changes, simply because a CGI script has a very short lifetime of one
17 HTTP request, allowing you to get away with "quick and dirty"
18 scripting. Using mod_perl and Apache::Registry requires you to be
19 more careful, but it also gives new meaning to the work "quick"!
20 Apache::Registry maintains a cache of compiled scripts, which happens
21 the first time a script is accessed by a child server or once again if
22 the file is updated on disk.
23
24 Although it may be all you need, a speedy CGI replacement is only a
25 small part of this project. Callback hooks are in place for each stage
26 of a request. Apache-Perl modules may step in during the handler,
27 header parser, uri translate, authentication, authorization, access,
28 type check, fixup, logger and cleanup stages of a request.
29
30 Apache/Perl modules include:
31 Apache::Registry - Run unaltered CGI scripts
32 Apache::Status - Embedded interpreter runtime status
33 Apache::Embperl - Embed Perl code in HTML documents
34 Apache::SSI - Implement server-side includes in Perl
35 Apache::DBI - Maintain persistent DBI connections
36 Apache::Gateway - Implement an HTTP/1.1 gateway
37 Apache::GzipChain - Compress output on the fly
38 Apache::Filter - Filter document and script output
39 Apache::Sandwich - Generate page headers and footers
40 Apache::TransLDAP - Translate URIs via LDAP lookups
41 Apache::ASP - Implement "Active Server Pages"
42 Apache::AuthenDBI - Authenticate against a database via DBI
43 Apache::PHLogin - Authenticate against a PH database
44 Apache::DBILogger - Log requests to a database via DBI
45 Apache::Session - Persistent session management
46 Apache::Throttle - Content negotiation based on connection speed
47
48 There's plenty more Apache/Perl software you might be interested in.
49 The Apache/Perl module list keeps track of modules inside and outside
50 the distribution, along with idea placeholders.
51
52 It is also possible to use Perl to configure your server (in
53 *.conf files) with <Perl> sections. This eases often complicated and
54 cumbersome configuration of vitrual host and various resources. Since
55 any Perl code can be used in these sections, configuration info could
56 be pulled in from an RDBMS with DBI or your favorite database package.
57
58 While the output of mod_perl scripts can be included with Server Side
59 Includes just as CGI scripts can, mod_perl's integration with
60 mod_include gives an extra speed boost and allows Perl code to be
61 directly inside SSI files.
62
63 For comments, questions, bug-reports, etc., join the Apache/Perl
64 mailing list by sending mail to modperl-subscribe (a] perl.apache.org.
65 sending mail to announce-subscribe (a] perl.apache.org
66 will subscribe you to the very low-traffic announcements list.
67
68 Here is an important list of links to follow:
69
70 The Apache/Perl homepage:
71 http://perl.apache.org/
72 or
73 http://apache.perl.org/
74
75 Mailing list archives:
76 http://perl.apache.org/maillist/modperl.html#Searchable_Archives
77
78 Documentation:
79 http://perl.apache.org/docs/index.html
80
81 Books:
82
83 "Practical mod_perl"
84 By Stas Bekman and Eric Cholet
85 http://www.modperlbook.org/
86
87 "The mod_perl Developer's Cookbook"
88 By Geoffrey Young; Paul Lindner; Randy Kobes
89 http://www.modperlcookbook.org/
90
91 "mod_perl quick reference card"
92 By Andrew Ford
93 http://www.refcards.com/
94
95 "Writing Apache Modules with Perl and C":
96 By Lincoln Stein and Doug MacEachern
97 http://www.modperl.com/
98
99 The Apache/Perl module list:
100 http://perl.apache.org/products/apache-modules.html
101
102
103
104 Enjoy,
105 -Doug MacEachern (dougm (a] perl.apache.org)
106
107