server.document-root         = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/"
server.pid-file              = env.SRCDIR + "/tmp/lighttpd/lighttpd.pid"

debug.log-request-header   = "enable"
debug.log-response-header  = "enable"
debug.log-request-handling = "enable"

## bind to port (default: 80)
server.port                 = 2048

# server.license              = "00000001000000013feccb804014587f000000010000000105911c976a3d462c8eaa2d7ca850432c"

## bind to localhost (default: all interfaces)
server.bind                = "localhost"
server.errorlog            = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log"
server.name                = "www.example.org"
server.tag                 = "Apache 1.3.29"

##
## Format: <errorfile-prefix><status>.html
## -> ..../status-404.html for 'File not found'
#server.errorfile-prefix    = "/home/weigon/projects/lighttpd/doc/status-"

server.dir-listing          = "enable"

#server.event-handler        = "linux-sysepoll"
#server.event-handler        = "linux-rtsig"

#server.modules.path         = ""
server.modules              = (
				"mod_rewrite",
			        "mod_access",
				"mod_auth",
#				"mod_httptls",
				"mod_status",
				"mod_expire",
#				"mod_simple_vhost",
				"mod_redirect",
#				"mod_evhost",
#				"mod_localizer",
				"mod_fastcgi",
				"mod_cgi",
				"mod_compress",
				"mod_accesslog" )

server.indexfiles           = ( "index.php", "index.html",
                                "index.htm", "default.htm" )

#,-- only root can use these options
#|
#|# chroot() to directory (default: no chroot() )
#| server.chroot  /
#|# change uid to <uid> (default: don't care)
#| server.userid wwwrun
#|# change uid to <uid> (default: don't care)
#| server.groupid wwwrun
#|
#`--


######################## MODULE CONFIG ############################


accesslog.filename          = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log"

mimetype.assign             = ( ".png"  => "image/png",
                                ".jpg"  => "image/jpeg",
                                ".jpeg" => "image/jpeg",
                                ".gif"  => "image/gif",
                                ".html" => "text/html",
                                ".htm"  => "text/html",
                                ".pdf"  => "application/pdf",
                                ".swf"  => "application/x-shockwave-flash",
                                ".spl"  => "application/futuresplash",
                                ".txt"  => "text/plain",
                                ".tar.gz" =>   "application/x-tgz",
                                ".tgz"  => "application/x-tgz",
                                ".gz"   => "application/x-gzip",
				".c"    => "text/plain",
				".conf" => "text/plain" )

compress.cache-dir          = env.SRCDIR + "/tmp/lighttpd/cache/compress/"
compress.filetype           = ("text/plain", "text/html")

fastcgi.debug               = 0
fastcgi.server              = ( "/" => (
                                  "grisu" => (
				    "host" => "127.0.0.1",
				    "port" => 20000,
				    "bin-path" => env.SRCDIR + "/fcgi-auth",
                                    "mode" => "authorizer",
                                    "docroot" => env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/",

				  )
				)
			      )


cgi.assign                  = ( ".pl"  => "/usr/bin/perl",
                                ".cgi" => "/usr/bin/perl",
				".py"  => "/usr/bin/python" )



ssl.engine                  = "disable"
ssl.pemfile                 = "server.pem"

auth.backend                = "plain"
auth.backend.plain.userfile = env.SRCDIR + "/tmp/lighttpd/lighttpd.user"
auth.backend.plain.groupfile = "lighttpd.group"

auth.backend.ldap.hostname  = "localhost"
auth.backend.ldap.base-dn   = "dc=my-domain,dc=com"
auth.backend.ldap.filter    = "(uid=$)"

auth.require                = ( "/server-status" =>
                                (
				  "method"  => "digest",
				  "realm"   => "download archiv",
#				  "require" => ("group=www", "user=jan", "host=192.168.2.10")
				  "require" => "group=www|user=jan|host=192.168.2.10"
				),
				"/auth.php" =>
                                (
				  "method"  => "basic",
				  "realm"   => "download archiv",
#				  "require" => ("group=www", "user=jan", "host=192.168.2.10")
				  "require" => "user=jan"
				),
				"/server-config" =>
                                (
				  "method"  => "basic",
				  "realm"   => "download archiv",
#				  "require" => ("group=www", "user=jan", "user=weigon", "host=192.168.2.10")
				  "require" => "group=www|user=jan|host=192.168.2.10"
				)
                              )

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

url.redirect                = ( "^/redirect/$" => "http://localhost:2048/" )

expire.url                  = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")

#cache.cache-dir             = "/home/weigon/wwwroot/cache/"

#### status module
status.status-url           = "/server-status"
status.config-url           = "/server-config"

$HTTP["host"] == "vvv.example.org" {
  server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/"
}

$HTTP["host"] == "zzz.example.org" {
  server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/"
  server.name = "zzz.example.org"
}

