my $error = \*STDERR; # send STDERR to the web server
$error = \*STDOUT # send STDERR to stdout (a logfile)
if $options->{keep_stderr}; # (if asked to)
-
+
my $request =
FCGI::Request( \*STDIN, \*STDOUT, $error, \%env, $sock,
( $options->{nointr} ? 0 : &FCGI::FAIL_ACCEPT_ON_INTR ),
$self->daemon_detach() if $options->{detach};
$proc_manager->pm_manage();
+
+ # Give each child its own RNG state.
+ srand;
}
elsif ( $options->{detach} ) {
$self->daemon_detach();
while ( $request->Accept >= 0 ) {
$proc_manager && $proc_manager->pm_pre_dispatch();
-
+
$self->_fix_env( \%env );
-
+
$class->handle_request( env => \%env );
-
+
$proc_manager && $proc_manager->pm_post_dispatch();
}
}
The FastCgiExternalServer directive tells Apache that when serving
/tmp/myapp to use the FastCGI application listenting on the socket
-/tmp/mapp.socket. Note that /tmp/myapp.fcgi does not need to exist --
+/tmp/mapp.socket. Note that /tmp/myapp.fcgi B<MUST NOT> exist --
it's a virtual file name. With some versions of C<mod_fastcgi> or
-C<mod_fcgid>, you can use any name you like, but most require that the
+C<mod_fcgid>, you can use any name you like, but some require that the
virtual filename end in C<.fcgi>.
It's likely that Apache is not configured to serve files in /tmp, so the