1 # lighttpd configuration file
3 # use it as a base for lighttpd 1.0.0 and above
5 # $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $
7 ############ Options you really have to take care of ####################
10 # at least mod_access and mod_accesslog should be loaded
11 # all other module should only be loaded if really neccesary
20 # "mod_trigger_b4_dl",
38 ## a static document-root, for virtual-hosting take look at the
39 ## server.virtual-* options
40 server.document-root = "/srv/http/"
42 ## where to send error-messages to
43 server.errorlog = "/var/log/lighttpd/error.log"
45 # files to check for if .../ is requested
46 index-file.names = ( "index.html", "index.html", "index.sh",
47 "index.u", "index.php" )
49 ## set the event-handler (read the performance section in the manual)
50 # server.event-handler = "freebsd-kqueue" # needed on OS X
54 ".pdf" => "application/pdf",
55 ".sig" => "application/pgp-signature",
56 ".spl" => "application/futuresplash",
57 ".class" => "application/octet-stream",
58 ".ps" => "application/postscript",
59 ".torrent" => "application/x-bittorrent",
60 ".dvi" => "application/x-dvi",
61 ".gz" => "application/x-gzip",
62 ".pac" => "application/x-ns-proxy-autoconfig",
63 ".swf" => "application/x-shockwave-flash",
64 ".tar.gz" => "application/x-tgz",
65 ".tgz" => "application/x-tgz",
66 ".tar" => "application/x-tar",
67 ".zip" => "application/zip",
68 ".mp3" => "audio/mpeg",
69 ".m3u" => "audio/x-mpegurl",
70 ".wma" => "audio/x-ms-wma",
71 ".wax" => "audio/x-ms-wax",
72 ".ogg" => "application/ogg",
73 ".wav" => "audio/x-wav",
74 ".gif" => "image/gif",
75 ".jar" => "application/x-java-archive",
76 ".jpg" => "image/jpeg",
77 ".jpeg" => "image/jpeg",
78 ".png" => "image/png",
79 ".xbm" => "image/x-xbitmap",
80 ".xpm" => "image/x-xpixmap",
81 ".xwd" => "image/x-xwindowdump",
83 ".html" => "text/html",
84 ".htm" => "text/html",
85 ".js" => "text/javascript",
86 ".asc" => "text/plain",
88 ".cpp" => "text/plain",
89 ".log" => "text/plain",
90 ".conf" => "text/plain",
91 ".text" => "text/plain",
92 ".txt" => "text/plain",
95 ".mpeg" => "video/mpeg",
96 ".mpg" => "video/mpeg",
97 ".mov" => "video/quicktime",
98 ".qt" => "video/quicktime",
99 ".avi" => "video/x-msvideo",
100 ".asf" => "video/x-ms-asf",
101 ".asx" => "video/x-ms-asf",
102 ".wmv" => "video/x-ms-wmv",
103 ".bz2" => "application/x-bzip",
104 ".tbz" => "application/x-bzip-compressed-tar",
105 ".tar.bz2" => "application/x-bzip-compressed-tar",
107 "" => "application/octet-stream",
110 # Use the "Content-Type" extended attribute to obtain mime type if possible
111 #mimetype.use-xattr = "enable"
114 ## send a different Server: header
115 ## be nice and keep it at lighttpd
116 # server.tag = "lighttpd"
118 #### accesslog module
119 accesslog.filename = "/var/log/lighttpd/access.log"
121 ## deny access the file-extensions
123 # ~ is for backupfiles from vi, emacs, joe, ...
124 # .inc is often used for code includes which should in general not be part
125 # of the document-root
126 url.access-deny = ( ".lua", "~", ".inc", ".cnf", )
128 $HTTP["url"] =~ "\.pdf$" {
129 server.range-requests = "disable"
133 # which extensions should not be handle via static-file transfer
135 # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
136 static-file.exclude-extensions = ( ".u", ".sh", ".php", ".pl", ".fcgi" )
138 ######### Options that are good to be but not neccesary to be changed #######
140 ## bind to port (default: 80)
143 # $HTTP["url"] =~ "^/*" {
144 # url.redirect = ( "^/(.*)" => "https://192.168.3.224/$1" )
147 ## bind to localhost (default: all interfaces)
148 #server.bind = "127.0.0.1"
150 ## error-handler for status 404
151 #server.error-handler-404 = "/error-handler.html"
152 #server.error-handler-404 = "/error-handler.php"
154 ## to help the rc.scripts
155 server.pid-file = "/var/run/lighttpd/lighttpd.pid"
160 ## If you want name-based virtual hosting add the next three settings and load
164 ## virtual-server-root + virtual-server-default-host + virtual-server-docroot
166 ## virtual-server-root + http-host + virtual-server-docroot
168 #simple-vhost.server-root = "/srv/http/vhosts/"
169 #simple-vhost.default-host = "www.example.org"
170 #simple-vhost.document-root = "/htdocs/"
174 ## Format: <errorfile-prefix><status-code>.html
175 ## -> ..../status-404.html for 'File not found'
176 #server.errorfile-prefix = "/usr/share/lighttpd/errors/status-"
177 #server.errorfile-prefix = "/srv/http/errors/status-"
179 ## virtual directory listings
180 dir-listing.activate = "enable"
183 #debug.log-request-header = "enable"
184 #debug.log-response-header = "enable"
185 #debug.log-request-handling = "enable"
186 #debug.log-file-not-found = "enable"
188 ### only root can use these options
190 # chroot() to directory (default: no chroot() )
193 ## change uid to <uid> (default: don't care)
194 server.username = "http"
196 ## change uid to <uid> (default: don't care)
197 server.groupname = "http"
200 #compress.cache-dir = "/var/cache/lighttpd/compress/"
201 #compress.filetype = ("text/plain", "text/html")
204 ## read proxy.txt for more info
205 #proxy.server = ( ".php" =>
208 # "host" => "192.168.0.101",
215 ## read fastcgi.txt for more info
216 ## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
217 #fastcgi.server = ( ".php" =>
220 # "socket" => "/var/run/lighttpd/php-fastcgi.socket",
221 # "bin-path" => "/usr/bin/php-cgi"
227 #cgi.assign = ( ".pl" => "/usr/bin/perl",
228 # ".cgi" => "/usr/bin/perl" )
230 cgi.assign = ( ".u" => "/usr/bin/lua",
235 # ssl.engine = "enable"
236 # ssl.pemfile = "/etc/lighttpd/ssl/server.pem"
237 #ssl.pemfile = "/etc/ssl/private/lighttpd.pem"
238 # $SERVER["socket"] == "192.168.3.224:82" {
239 $SERVER["socket"] == "0.0.0.0:82" {
240 server.document-root = "/srv/http"
241 ssl.engine = "enable"
242 ssl.pemfile = "/etc/lighttpd/ssl/server.pem"
246 #status.status-url = "/server-status"
247 #status.config-url = "/server-config"
250 ## read authentication.txt for more info
251 auth.backend = "htdigest"
252 auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
254 auth.require = ( "/" =>
256 "method" => "digest",
257 "realm" => "authorized users only",
258 "require" => "valid-user"
262 #auth.backend = "plain"
263 #auth.backend.plain.userfile = "lighttpd.user"
264 #auth.backend.plain.groupfile = "lighttpd.group"
266 #auth.backend.ldap.hostname = "localhost"
267 #auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
268 #auth.backend.ldap.filter = "(uid=$)"
270 #auth.require = ( "/server-status" =>
272 # "method" => "digest",
273 # "realm" => "download archiv",
274 # "require" => "user=jan"
276 # "/server-config" =>
278 # "method" => "digest",
279 # "realm" => "download archiv",
280 # "require" => "valid-user"
284 #### url handling modules (rewrite, redirect, access)
285 #url.rewrite = ( "^/$" => "/server-status" )
286 #url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
287 #### both rewrite/redirect support back reference to regex conditional using %n
288 #$HTTP["host"] =~ "^www\.(.*)" {
289 # url.redirect = ( "^/(.*)" => "http://%1/$1" )
293 # define a pattern for the host url finding
295 # %0 => domain name + tld
297 # %2 => domain name without tld
298 # %3 => subdomain 1 name
299 # %4 => subdomain 2 name
301 #evhost.path-pattern = "/srv/http/vhosts/%3/htdocs/"
304 #expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
307 #ssi.extension = ( ".shtml" )
310 #rrdtool.binary = "/usr/bin/rrdtool"
311 #rrdtool.db-name = "/var/lib/lighttpd/lighttpd.rrd"
314 #setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" )
315 #setenv.add-response-header = ( "X-Secret-Message" => "42" )
317 ## for mod_trigger_b4_dl
318 # trigger-before-download.gdbm-filename = "/var/lib/lighttpd/trigger.db"
319 # trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
320 # trigger-before-download.trigger-url = "^/trigger/"
321 # trigger-before-download.download-url = "^/download/"
322 # trigger-before-download.deny-url = "http://127.0.0.1/index.html"
323 # trigger-before-download.trigger-timeout = 10
326 ## don't forget to add index.cml to server.indexfiles
327 # cml.extension = ".cml"
328 # cml.memcache-hosts = ( "127.0.0.1:11211" )
331 ## variable name without "." is auto prefixed by "var." and becomes "var.bar"
333 #var.mystring = "foo"
337 ## string concat, with integer cast as string, result: "www.foo1.com"
338 #server.name = "www." + mystring + var.bar + ".com"
340 #index-file.names = (foo + ".php") + index-file.names
341 #index-file.names += (foo + ".php")
344 #include /etc/lighttpd/lighttpd-inc.conf
345 ## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
346 #include "lighttpd-inc.conf"
349 #include_shell "echo var.a=1"
350 ## the above is same as: