---
name: "Catalyst::Manual::Deployment::lighttpd::FastCGI"
section: "3pm"
platform: "linux"
package: "libcatalyst-manual-perl"
version: "5.9013-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::Manual::Deployment::lighttpd::FastCGI"
---

# Catalyst::Manual::Deployment::lighttpd::FastCGI(3pm)

Deploying Catalyst with lighttpd

## NAME

Catalyst::Manual::Deployment::lighttpd::FastCGI - Deploying Catalyst with lighttpd

## Lighttpd

These configurations were tested with Lighttpd 1.4.7.

### Standalone server mode

```
    server.document-root = "/var/www/MyApp/root"
    fastcgi.server = (
        "" => (
            "MyApp" => (
                "socket"      => "/tmp/myapp.socket",
                "check-local" => "disable"
            )
        )
    )
```

### Static mode

```
    server.document-root = "/var/www/MyApp/root"
    fastcgi.server = (
        "" => (
            "MyApp" => (
                "socket"       => "/tmp/myapp.socket",
                "check-local"  => "disable",
                "bin-path"     => "/var/www/MyApp/script/myapp_fastcgi.pl",
                "min-procs"    => 2,
                "max-procs"    => 5,
                "idle-timeout" => 20
            )
        )
    )
```

Note that in newer versions of lighttpd, the min-procs and idle-timeout values are disabled.  The above example would start 5 processes.

### Non-root configuration

You can also run your application at any non-root location with either of the above modes.  Note the required mod\_rewrite rule.

```
    url.rewrite = ( "myapp\$" => "myapp/" )
    fastcgi.server = (
        "/myapp" => (
            "MyApp" => (
                # same as above
            )
        )
    )
```

For more information on using FastCGI under Lighttpd, visit \<https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs\_ModFastCGI\>

### Static file handling

Static files can be served directly by lighttpd for a performance boost.

```
   $HTTP["url"] !~ "^/(?:img/|static/|css/|favicon.ico$)" {
         fastcgi.server = (
             "" => (
                 "MyApp" => (
                     "socket"       => "/tmp/myapp.socket",
                     "check-local"  => "disable",
                 )
             )
         )
    }
```

This will serve everything in the `"img"`, `"static"`, and `"css"` directories statically, as well as the favicon file.

## AUTHORS

Catalyst Contributors, see Catalyst.pm

## COPYRIGHT

This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself.
