Lighttpd How to allow executing fcgi programs on www folder

fcgilighttpd

This is the first time I install lighttpd and I'm having a hard time configuring fcgi to work on /var/www/site/

I keep getting 403 Forbidden and so far have only found guides specific to php or that use workarounds.

What is the proper way to get fastcgi working on another folder?

My configuration files:

lighttpd.conf

server.modules = (
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
    #"mod_rewrite",
)

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

index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

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

# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

and 10-fastcgi.conf

server.modules += ( "mod_fastcgi" )

Fast CGI was successfully enabled and the server restarted, I tried many suggestions I found but none of them worked, they usually crashed the server.

Please pardon my ignorance and point me in the right direction. Thanks.

Best Answer

You need to make sure php and php-cgi are installed, and then add the following to your lighttpd.conf

fastcgi.server = ( 
    ".php" => (( "bin-path"  => "/usr/bin/php-cgi", 
                                "socket"                => "/var/run/lighttpd/php.socket",
                                "max-procs"             => 2,                    
                                "bin-environment"       => ( "PHP_FCGI_CHILDREN"     => "10",
                                                             "PHP_FCGI_MAX_REQUESTS" => "10000" ),
                                "bin-copy-environment"  => ( "PATH", "SHELL", "USER" ),
                                "broken-scriptfilename" => "enable" ))           
)

After you add the following, restart lighttpd and it should work. You can increase the processes and threads according to your server resources.