1 package PLP::Backend::FastCGI;
7 use base 'PLP::Backend::CGI';
13 $PLP::interface = $self;
14 my $request = FCGI::Request();
18 $SIG{PIPE} = 'IGNORE';
19 while ($request->Accept() >= 0) {
20 $PLP::use_cache = !defined $ENV{PLP_CACHE} || $ENV{PLP_CACHE}; # before it's clean()ed
21 delete $ENV{PATH_TRANSLATED};
30 PLP::Backend::FastCGI - FastCGI interface for PLP
36 Edit the configuration file (usually F</etc/lighttpd/lighttpd.conf>)
37 to enable I<mod_fastcgi> (add/outcomment in server.modules), and add:
41 "bin-path" => "/usr/bin/perl -MPLP::Backend::FastCGI",
42 "socket" => "/tmp/fcgi-plp.socket",
48 You'll need a dispatch script (F<plp.fcgi> is included with PLP).
49 Example F</foo/bar/plp.fcgi>:
52 use PLP::Backend::FastCGI;
54 Then enable either I<mod_fcgid> (recommended) or I<mod_fastcgi>, and
55 setup F<httpd.conf> (in new installs just create F</etc/apache/conf.d/plp>) with:
57 <IfModule mod_fastcgi.c>
58 AddHandler fastcgi-script plp
59 FastCgiWrapper /foo/bar/plp.fcgi
62 <IfModule mod_fcgid.c>
63 AddHandler fcgid-script plp
64 FCGIWrapper /foo/bar/plp.fcgi .plp
69 This is usually the preferred backend, providing persistent processes
70 for speeds comparable to L<mod_perl|PLP::Backend::Apache> and
71 reliability closer to L<CGI|PLP::Backend::CGI>.
73 Servers often feature auto-adjusting number of daemons, script timeouts,
74 and occasional restarts.
76 =head2 Configuration directives
78 PLP behaviour can be configured by setting environment variables.
84 Sets caching off if false (0 or empty), on otherwise (true or undefined).
85 When caching, PLP saves your script in memory and doesn't re-read
86 and re-parse it if it hasn't changed. PLP will use more memory,
87 but will also run 50% faster.
93 Mischa POSLAWSKY <perl@shiar.org>
97 L<PLP>, L<PLP::Backend::CGI>, L<FCGI>