The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

This command is provided for compatibility. You should probably use Plack's FastCGI deployment tools with the app.psgi file come with your jifty app.

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.