NAME

Jifty::Script::FastCGI - A FastCGI server for your Jifty application

SYNOPSIS

  AddHandler fastcgi-script fcgi
  FastCgiServer /path/to/your/jifty/app/bin/jifty -initial-env JIFTY_COMMAND=fastcgi 

Options:
  --maxrequests      maximum number of requests per process

  --help             brief help message
  --man              full documentation

DESCRIPTION

FastCGI entry point for your Jifty application

options

--maxrequests

Set maximum number of requests per process. Read also --man.

--help

Print a brief help message and exits.

--man

Prints the manual page and exits.

DESCRIPTION

When you're ready to move up to something that can handle the increasing load your new world-changing application is generating, you'll need something a bit heavier-duty than the pure-perl Jifty standalone server. FastCGI is what you're looking for.

If you have MaxRequests options under FastCGI in your config.yml, or command-line option --maxrequests=N assigned, the FastCGI process will exit after serving N requests.

SERVER CONFIGURATIONS

Apache + mod_fastcgi

# These two lines are FastCGI-specific; skip them to run in vanilla CGI mode
AddHandler fastcgi-script fcgi
FastCgiServer /path/to/your/jifty/app/bin/jifty -initial-env JIFTY_COMMAND=fastcgi 

DocumentRoot /path/to/your/jifty/app/share/web/templates
ScriptAlias / /path/to/your/jifty/app/bin/jifty/

Apache + mod_fcgid + mod_rewrite

An alternative to Apache mod_fastcgi is to use mod_fcgid with mod_rewrite. If you use mod_fcgid and mod_rewrite, you can use this in your Apache configuration instead:

DocumentRoot /path/to/your/jifty/app/share/web/templates
ScriptAlias /cgi-bin /path/to/your/jifty/app/bin
DefaultInitEnv JIFTY_COMMAND fastcgi
<Directory /path/to/your/jifty/app/bin>
    Options ExecCGI
    SetHandler fcgid-script
</Directory>
<Directory /path/to/your/jifty/app/share/web/templates>
    RewriteEngine on
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^(.*)$ /cgi-bin/jifty/$1 [QSA,L]
</Directory>

It may be possible to do this without using mod_rewrite.

Lighttpd (http://www.lighttpd.net/)

Version 1.4.23 or newer is recommended, and you may adapt this config:

server.modules  = ( "mod_fastcgi" )
server.document-root = "/path/to/your/jifty/app/share/web/templates"
fastcgi.server = (
       "/" => (
           "your_jifty_app" => (
               "socket"              => "/tmp/your_jifty_app.socket",
               "check-local"         => "disable",
               "fix-root-scriptname" => "enable",
               "bin-path"            => "/path/to/your/jifty/app/bin/jifty",
               "bin-environment"     => ( "JIFTY_COMMAND" => "fastcgi" ),
               "min-procs"           => 1,
               "max-procs"           => 5,
               "max-load-per-proc"   => 1,
               "idle-timeout"        => 20,
           )
       )
   )

Versions before 1.4.23 will work, but you should read Plack::Handler::FCGI's lighttpd documentation for how to configure your server.

More information

Since this uses Plack::Handler::FCGI, you might also want to read its documentation on webserver configurations.

METHODS

run

Creates a new FastCGI process.