| # lighttpd configuration file |
| # |
| ## modules to load |
| # all other module should only be loaded if really neccesary |
| # - saves some time |
| # - saves memory |
| server.modules = ( |
| "mod_rewrite", |
| # "mod_redirect", |
| # "mod_alias", |
| "mod_auth", |
| "mod_authn_file", |
| # "mod_status", |
| # "mod_setenv", |
| # "mod_fastcgi", |
| # "mod_proxy", |
| # "mod_simple_vhost", |
| "mod_cgi", |
| # "mod_ssi", |
| # "mod_usertrack", |
| # "mod_expire", |
| "mod_webdav", |
| "mod_mbedtls" |
| ) |
| |
| # force use of the "write" backend (closes: #2401) |
| server.network-backend = "write" |
| |
| ## a static document-root, for virtual-hosting take look at the |
| ## server.virtual-* options |
| server.document-root = "/www/" |
| |
| ## where to send error-messages to |
| #server.errorlog = "/var/log/lighttpd/error.log" |
| |
| ## files to check for if .../ is requested |
| index-file.names = ( "index.html", "default.html", "index.htm", "default.htm" ) |
| |
| ## mimetype mapping |
| mimetype.assign = ( |
| ".pdf" => "application/pdf", |
| ".class" => "application/octet-stream", |
| ".pac" => "application/x-ns-proxy-autoconfig", |
| ".swf" => "application/x-shockwave-flash", |
| ".wav" => "audio/x-wav", |
| ".gif" => "image/gif", |
| ".jpg" => "image/jpeg", |
| ".jpeg" => "image/jpeg", |
| ".png" => "image/png", |
| ".svg" => "image/svg+xml", |
| ".css" => "text/css", |
| ".html" => "text/html", |
| ".htm" => "text/html", |
| ".js" => "text/javascript", |
| ".txt" => "text/plain", |
| ".dtd" => "text/xml", |
| ".xml" => "text/xml" |
| ) |
| |
| ## Use the "Content-Type" extended attribute to obtain mime type if possible |
| #mimetypes.use-xattr = "enable" |
| |
| ## send a different Server: header |
| ## be nice and keep it at lighttpd |
| #server.tag = "lighttpd" |
| |
| $HTTP["url"] =~ "\.pdf$" { |
| server.range-requests = "disable" |
| } |
| |
| ## |
| # which extensions should not be handle via static-file transfer |
| # |
| # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi |
| static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) |
| |
| ######### Options that are good to be but not neccesary to be changed ####### |
| |
| ## bind to port (default: 80) |
| server.port = 80 |
| |
| ## bind to localhost (default: all interfaces) |
| #server.bind = "localhost" |
| |
| ## error-handler for status 404 |
| #server.error-handler-404 = "/error-handler.html" |
| #server.error-handler-404 = "/error-handler.php" |
| |
| ## to help the rc.scripts |
| server.pid-file = "/var/run/lighttpd.pid" |
| |
| |
| ###### virtual hosts |
| ## |
| ## If you want name-based virtual hosting add the next three settings and load |
| ## mod_simple_vhost |
| ## |
| ## document-root = |
| ## virtual-server-root + virtual-server-default-host + virtual-server-docroot or |
| ## virtual-server-root + http-host + virtual-server-docroot |
| ## |
| #simple-vhost.server-root = "/home/weigon/wwwroot/servers/" |
| #simple-vhost.default-host = "grisu.home.kneschke.de" |
| #simple-vhost.document-root = "/pages/" |
| |
| |
| ## |
| ## Format: <errorfile-prefix><status>.html |
| ## -> ..../status-404.html for 'File not found' |
| #server.errorfile-prefix = "/www/error-" |
| |
| ## virtual directory listings |
| #server.dir-listing = "enable" |
| |
| ## send unhandled HTTP-header headers to error-log |
| #debug.dump-unknown-headers = "enable" |
| |
| ### only root can use these options |
| # |
| # chroot() to directory (default: no chroot() ) |
| #server.chroot = "/" |
| |
| ## change uid to <uid> (default: don't care) |
| #server.username = "nobody" |
| # |
| server.upload-dirs = ( "/tmp" ) |
| |
| ## change uid to <uid> (default: don't care) |
| #server.groupname = "nobody" |
| |
| #### compress module |
| #compress.cache-dir = "/dev/null/" |
| #compress.filetype = ("text/plain", "text/html") |
| |
| #### proxy module |
| ## read proxy.txt for more info |
| #proxy.server = ( |
| # ".php" => ( |
| # "localhost" => ( |
| # "host" => "192.168.0.101", |
| # "port" => 80 |
| # ) |
| # ) |
| #) |
| |
| #### fastcgi module |
| ## read fastcgi.txt for more info |
| #fastcgi.server = ( |
| # ".php" => ( |
| # "localhost" => ( |
| # "socket" => "/tmp/php-fastcgi.socket", |
| # "bin-path" => "/usr/local/bin/php" |
| # ) |
| # ) |
| #) |
| |
| #### CGI module |
| cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "" ) |
| |
| #### SSL engine |
| $SERVER["socket"] == ":443" { |
| ssl.engine = "enable" |
| ssl.pemfile = "/etc/lighttpd/server.pem" |
| } |
| |
| #### status module |
| #status.status-url = "/server-status" |
| #status.config-url = "/server-config" |
| |
| #### auth module |
| ## read authentification.txt for more info |
| auth.backend = "plain" |
| auth.backend.plain.userfile = "/etc/lighttpd/lighttpd.user.webdav" |
| #auth.backend.plain.groupfile = "lighttpd.group" |
| auth.require = ( |
| "/webdav/" => ( |
| "method" => "digest", |
| "realm" => "WebDav", |
| "require" => "valid-user" |
| ) |
| # "/server-info" => ( |
| # "method" => "digest", |
| # "realm" => "download archiv", |
| # "require" => "group=www|user=jan|host=192.168.2.10" |
| # ) |
| ) |
| |
| #### url handling modules (rewrite, redirect, access) |
| #url.rewrite = ( "^/$" => "/server-status" ) |
| #url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) |
| url.rewrite-once = ( |
| "^/([a-zA-Z0-9_-]+)$" => "/ASR/$1.html", |
| "^/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$" => "/ASR/$1/$2.html" |
| ) |
| |
| #### both rewrite/redirect support back reference to regex conditional using %n |
| #$HTTP["host"] =~ "^www\.(.*)" { |
| # url.redirect = ( "^/(.*)" => "http://%1/$1" ) |
| #} |
| |
| #### expire module |
| #expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") |
| |
| #### ssi |
| #ssi.extension = ( ".shtml" ) |
| |
| #### setenv |
| #setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) |
| #setenv.add-response-header = ( "X-Secret-Message" => "42" ) |
| |
| #### variable usage: |
| ## variable name without "." is auto prefixed by "var." and becomes "var.bar" |
| #bar = 1 |
| #var.mystring = "foo" |
| |
| ## integer add |
| #bar += 1 |
| ## string concat, with integer cast as string, result: "www.foo1.com" |
| #server.name = "www." + mystring + var.bar + ".com" |
| ## array merge |
| #index-file.names = (foo + ".php") + index-file.names |
| #index-file.names += (foo + ".php") |
| |
| #### include |
| #include /etc/lighttpd/lighttpd-inc.conf |
| ## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf" |
| #include "lighttpd-inc.conf" |
| |
| #### include_shell |
| #include_shell "echo var.a=1" |
| ## the above is same as: |
| #var.a=1 |
| |
| #### webdav-need digest auth folder |
| $HTTP["url"] =~ "^/webdav($|/)" { |
| webdav.activate = "enable" |
| webdav.opts = ( "deprecated-unsafe-partial-put" => "enable" ) |
| # webdav.is-readonly = "enable" |
| # webdav.sqlite-db-name = "/var/run/lighttpd-webdav-lock.db" |
| } |
| #### shared-no need digest auth folder |
| $HTTP["url"] =~ "^/shared($|/)" { |
| webdav.activate = "enable" |
| webdav.opts = ( "deprecated-unsafe-partial-put" => "enable" ) |
| # webdav.is-readonly = "enable" |
| # webdav.sqlite-db-name = "/var/run/lighttpd-webdav-lock.db" |
| } |
| |