Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

i'm tring to deploy a simple flask script to a lighttpd server with fastcgi.

this is the configuration file for lighttpd builded using the flask documentation

server.modules = ( 

server.document-root        = "/var/www"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"             = "/var/run/"
server.username             = "www-data"
server.groupname            = "www-data"

index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                               " index.lighttpd.html" )

url.access-deny             = ( "~", ".inc" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

var.home_dir = "/var/lib/lighttpd"
var.socket_dir = home_dir + "sockets/"
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/"

dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/x-javascript", "text/css", "text/html", "text/plain" )

include_shell "/usr/share/lighttpd/"
include_shell "/usr/share/lighttpd/"

fastcgi.server = ("weibo/callback.fcgi" =>
        "socket" => "/tmp/weibocrawler-fcgi.sock",
        "bin-path" => "/var/www/weibo/callback.fcgi",
        "check-local" => "disable",
        "max-procs" => 1

url.rewrite-once = ( 
    "^(/weibo($|/.*))$" => "$1",
    "^(/.*)$" => "weibo/callback.fcgi$1"

and this is the script i'm tring to run:

from flup.server.fcgi import WSGIServer
from callback import app 

if __name__ == '__main__':
    WSGIServer(application, bindAddress='/tmp/weibocrawler-fcgi.sock').run()

but i have this error testing the configuration file i get this error: 2013-07-02 17:15:42: (configfile.c.912) source: line: 52 pos: 1 parser failed somehow near here: weibo/callback.fcgi$1

when i remove the urlrewrite i get these errors in the log even if the daemon start:

2013-07-02 16:25:53: (log.c.166) server started 
2013-07-02 16:25:53: (mod_fastcgi.c.1104) the fastcgi-backend failed to start: 
2013-07-02 16:25:53: (mod_fastcgi.c.1108) child exited with status 2 
2013-07-02 16:25:53: (mod_fastcgi.c.1111) If you're trying to run your app as a FastCGI backend, make sure you're using the FastCGI-enabled version.
If this is PHP on Gentoo, add 'fastcgi' to the USE flags. 
2013-07-02 16:25:53: (mod_fastcgi.c.1399) [ERROR]: spawning fcgi failed. 
2013-07-02 16:25:53: (server.c.938) Configuration of plugins failed. Going down.
share|improve this question
up vote 0 down vote accepted

You need to close the url.rewrite with a ).

That fcgi error seems to be referring to an fcgi script that I don't see mentioned in your configuration snippet. Is that the whole config? Is there anything in the conf.enabled directory?

share|improve this answer
this seem the right answer, i can now star correctly the server, i changed name to the application and then forgot to change it in one of the place where was named. i now get an error 500 but it's a separate issue, thanks – kurojishi Jul 9 '13 at 0:56

If you spawn the fcgi-app with lighttpd (bin-path option in the fastcgi.server block), the fcgi-app must not use the socket name (lighttpd will bind the socket to STDIN of the fcgi-app, and the fcgi-app usually detects this).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.