1 | # lighttpd configuration file |
---|
2 | # |
---|
3 | # use it as a base for lighttpd 1.0.0 and above |
---|
4 | # |
---|
5 | # $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $ |
---|
6 | |
---|
7 | ############ Options you really have to take care of #################### |
---|
8 | |
---|
9 | ## modules to load |
---|
10 | # at least mod_access and mod_accesslog should be loaded |
---|
11 | # all other module should only be loaded if really neccesary |
---|
12 | # - saves some time |
---|
13 | # - saves memory |
---|
14 | server.modules = ( |
---|
15 | # "mod_redirect", |
---|
16 | "mod_alias", |
---|
17 | "mod_rewrite", |
---|
18 | "mod_access", |
---|
19 | # "mod_trigger_b4_dl", |
---|
20 | # "mod_auth", |
---|
21 | # "mod_status", |
---|
22 | # "mod_setenv", |
---|
23 | "mod_fastcgi", |
---|
24 | # "mod_proxy", |
---|
25 | # "mod_simple_vhost", |
---|
26 | # "mod_evhost", |
---|
27 | # "mod_userdir", |
---|
28 | "mod_cgi", |
---|
29 | # "mod_compress", |
---|
30 | # "mod_ssi", |
---|
31 | # "mod_usertrack", |
---|
32 | # "mod_expire", |
---|
33 | # "mod_secdownload", |
---|
34 | # "mod_rrdtool", |
---|
35 | # "mod_magnet", |
---|
36 | "mod_accesslog" ) |
---|
37 | |
---|
38 | ## A static document-root. For virtual hosting take a look at the |
---|
39 | ## mod_simple_vhost module. |
---|
40 | #server.document-root = "/opt/local/www/htdocs/" |
---|
41 | |
---|
42 | ## where to send error-messages to |
---|
43 | server.errorlog = "/opt/local/var/log/lighttpd/error.log" |
---|
44 | |
---|
45 | # files to check for if .../ is requested |
---|
46 | index-file.names = ( "index.php", "index.html", |
---|
47 | "index.htm", "default.htm" ) |
---|
48 | |
---|
49 | ## set the event-handler (read the performance section in the manual) |
---|
50 | server.event-handler = "freebsd-kqueue" # needed on OS X |
---|
51 | |
---|
52 | # mimetype mapping |
---|
53 | mimetype.assign = ( |
---|
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", |
---|
82 | ".css" => "text/css", |
---|
83 | ".html" => "text/html", |
---|
84 | ".htm" => "text/html", |
---|
85 | ".js" => "text/javascript", |
---|
86 | ".asc" => "text/plain", |
---|
87 | ".c" => "text/plain", |
---|
88 | ".cpp" => "text/plain", |
---|
89 | ".log" => "text/plain", |
---|
90 | ".conf" => "text/plain", |
---|
91 | ".text" => "text/plain", |
---|
92 | ".txt" => "text/plain", |
---|
93 | ".dtd" => "text/xml", |
---|
94 | ".xml" => "text/xml", |
---|
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", |
---|
106 | # default mime type |
---|
107 | "" => "application/octet-stream", |
---|
108 | ) |
---|
109 | |
---|
110 | # Use the "Content-Type" extended attribute to obtain mime type if possible |
---|
111 | #mimetype.use-xattr = "enable" |
---|
112 | |
---|
113 | |
---|
114 | ## send a different Server: header |
---|
115 | ## be nice and keep it at lighttpd |
---|
116 | # server.tag = "lighttpd" |
---|
117 | |
---|
118 | #### accesslog module |
---|
119 | accesslog.filename = "/opt/local/var/log/lighttpd/access.log" |
---|
120 | |
---|
121 | ## deny access the file-extensions |
---|
122 | # |
---|
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 = ( "~", ".inc" ) |
---|
127 | |
---|
128 | $HTTP["url"] =~ "\.pdf$" { |
---|
129 | server.range-requests = "disable" |
---|
130 | } |
---|
131 | |
---|
132 | ## |
---|
133 | # which extensions should not be handle via static-file transfer |
---|
134 | # |
---|
135 | # .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi |
---|
136 | static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) |
---|
137 | |
---|
138 | ######### Options that are good to be but not neccesary to be changed ####### |
---|
139 | |
---|
140 | ## bind to port (default: 80) |
---|
141 | server.port = 80 |
---|
142 | #server.port = 81 |
---|
143 | |
---|
144 | ## bind to localhost (default: all interfaces) |
---|
145 | #server.bind = "127.0.0.1" |
---|
146 | |
---|
147 | ## error-handler for status 404 |
---|
148 | #server.error-handler-404 = "/error-handler.html" |
---|
149 | #server.error-handler-404 = "/error-handler.php" |
---|
150 | |
---|
151 | ## to help the rc.scripts |
---|
152 | server.pid-file = "/opt/local/var/run/lighttpd.pid" |
---|
153 | |
---|
154 | |
---|
155 | ###### virtual hosts |
---|
156 | ## |
---|
157 | ## If you want name-based virtual hosting add the next three settings and load |
---|
158 | ## mod_simple_vhost |
---|
159 | ## |
---|
160 | ## document-root = |
---|
161 | ## virtual-server-root + virtual-server-default-host + virtual-server-docroot |
---|
162 | ## or |
---|
163 | ## virtual-server-root + http-host + virtual-server-docroot |
---|
164 | ## |
---|
165 | #simple-vhost.server-root = "/opt/local/www/vhosts/" |
---|
166 | #simple-vhost.default-host = "www.example.org" |
---|
167 | #simple-vhost.document-root = "/htdocs/" |
---|
168 | |
---|
169 | |
---|
170 | ## |
---|
171 | ## Format: <errorfile-prefix><status-code>.html |
---|
172 | ## -> ..../status-404.html for 'File not found' |
---|
173 | #server.errorfile-prefix = "/opt/local/share/lighttpd/errors/status-" |
---|
174 | #server.errorfile-prefix = "/opt/local/www/errors/status-" |
---|
175 | |
---|
176 | ## virtual directory listings |
---|
177 | #dir-listing.activate = "enable" |
---|
178 | ## select encoding for directory listings |
---|
179 | #dir-listing.encoding = "utf-8" |
---|
180 | |
---|
181 | ## enable debugging |
---|
182 | #debug.log-request-header = "enable" |
---|
183 | #debug.log-response-header = "enable" |
---|
184 | #debug.log-request-handling = "enable" |
---|
185 | #debug.log-file-not-found = "enable" |
---|
186 | |
---|
187 | ### only root can use these options |
---|
188 | # |
---|
189 | # chroot() to directory (default: no chroot() ) |
---|
190 | #server.chroot = "/" |
---|
191 | |
---|
192 | ## change uid to <uid> (default: don't care) |
---|
193 | server.username = "www" |
---|
194 | |
---|
195 | ## change uid to <uid> (default: don't care) |
---|
196 | server.groupname = "www" |
---|
197 | |
---|
198 | #### compress module |
---|
199 | #compress.cache-dir = "/opt/local/var/cache/lighttpd/compress/" |
---|
200 | #compress.filetype = ("text/plain", "text/html") |
---|
201 | |
---|
202 | #### proxy module |
---|
203 | ## read proxy.txt for more info |
---|
204 | #proxy.server = ( ".php" => |
---|
205 | # ( "localhost" => |
---|
206 | # ( |
---|
207 | # "host" => "192.168.0.101", |
---|
208 | # "port" => 80 |
---|
209 | # ) |
---|
210 | # ) |
---|
211 | # ) |
---|
212 | |
---|
213 | #### fastcgi module |
---|
214 | ## read fastcgi.txt for more info |
---|
215 | ## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini |
---|
216 | fastcgi.server = ( ".php" => |
---|
217 | ( "localhost" => |
---|
218 | ( |
---|
219 | "socket" => "/opt/local/var/run/lighttpd/php-fastcgi.socket", |
---|
220 | "bin-path" => "/opt/local/bin/php-cgi" |
---|
221 | ) |
---|
222 | ) |
---|
223 | ) |
---|
224 | |
---|
225 | #### CGI module |
---|
226 | cgi.assign = ( ".pl" => "/opt/local/bin/perl", |
---|
227 | ".cgi" => "/opt/local/bin/perl" ) |
---|
228 | |
---|
229 | |
---|
230 | #### SSL engine |
---|
231 | #ssl.engine = "enable" |
---|
232 | #ssl.pemfile = "/opt/local/etc/ssl/private/lighttpd.pem" |
---|
233 | |
---|
234 | #### status module |
---|
235 | #status.status-url = "/server-status" |
---|
236 | #status.config-url = "/server-config" |
---|
237 | |
---|
238 | #### auth module |
---|
239 | ## read authentication.txt for more info |
---|
240 | #auth.backend = "plain" |
---|
241 | #auth.backend.plain.userfile = "lighttpd.user" |
---|
242 | #auth.backend.plain.groupfile = "lighttpd.group" |
---|
243 | |
---|
244 | #auth.backend.ldap.hostname = "localhost" |
---|
245 | #auth.backend.ldap.base-dn = "dc=my-domain,dc=com" |
---|
246 | #auth.backend.ldap.filter = "(uid=$)" |
---|
247 | |
---|
248 | #auth.require = ( "/server-status" => |
---|
249 | # ( |
---|
250 | # "method" => "digest", |
---|
251 | # "realm" => "download archiv", |
---|
252 | # "require" => "user=jan" |
---|
253 | # ), |
---|
254 | # "/server-config" => |
---|
255 | # ( |
---|
256 | # "method" => "digest", |
---|
257 | # "realm" => "download archiv", |
---|
258 | # "require" => "valid-user" |
---|
259 | # ) |
---|
260 | # ) |
---|
261 | |
---|
262 | #### url handling modules (rewrite, redirect, access) |
---|
263 | #url.rewrite = ( "^/$" => "/server-status" ) |
---|
264 | #url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" ) |
---|
265 | #### both rewrite/redirect support back reference to regex conditional using %n |
---|
266 | #$HTTP["host"] =~ "^www\.(.*)" { |
---|
267 | # url.redirect = ( "^/(.*)" => "http://%1/$1" ) |
---|
268 | #} |
---|
269 | |
---|
270 | # |
---|
271 | # define a pattern for the host url finding |
---|
272 | # %% => % sign |
---|
273 | # %0 => domain name + tld |
---|
274 | # %1 => tld |
---|
275 | # %2 => domain name without tld |
---|
276 | # %3 => subdomain 1 name |
---|
277 | # %4 => subdomain 2 name |
---|
278 | # |
---|
279 | #evhost.path-pattern = "/opt/local/www/vhosts/%3/htdocs/" |
---|
280 | |
---|
281 | #### expire module |
---|
282 | #expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes") |
---|
283 | |
---|
284 | #### ssi |
---|
285 | #ssi.extension = ( ".shtml" ) |
---|
286 | |
---|
287 | #### rrdtool |
---|
288 | #rrdtool.binary = "/opt/local/bin/rrdtool" |
---|
289 | #rrdtool.db-name = "/opt/local/var/lib/lighttpd/lighttpd.rrd" |
---|
290 | |
---|
291 | #### setenv |
---|
292 | #setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" ) |
---|
293 | #setenv.add-response-header = ( "X-Secret-Message" => "42" ) |
---|
294 | |
---|
295 | ## for mod_trigger_b4_dl |
---|
296 | # trigger-before-download.gdbm-filename = "/opt/local/var/lib/lighttpd/trigger.db" |
---|
297 | # trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" ) |
---|
298 | # trigger-before-download.trigger-url = "^/trigger/" |
---|
299 | # trigger-before-download.download-url = "^/download/" |
---|
300 | # trigger-before-download.deny-url = "http://127.0.0.1/index.html" |
---|
301 | # trigger-before-download.trigger-timeout = 10 |
---|
302 | |
---|
303 | #### variable usage: |
---|
304 | ## variable name without "." is auto prefixed by "var." and becomes "var.bar" |
---|
305 | #bar = 1 |
---|
306 | #var.mystring = "foo" |
---|
307 | |
---|
308 | ## integer add |
---|
309 | #bar += 1 |
---|
310 | ## string concat, with integer cast as string, result: "www.foo1.com" |
---|
311 | #server.name = "www." + mystring + var.bar + ".com" |
---|
312 | ## array merge |
---|
313 | #index-file.names = (foo + ".php") + index-file.names |
---|
314 | #index-file.names += (foo + ".php") |
---|
315 | |
---|
316 | #### include |
---|
317 | #include /opt/local/etc/lighttpd/lighttpd-inc.conf |
---|
318 | ## same as above if you run: "lighttpd -f /opt/local/etc/lighttpd/lighttpd.conf" |
---|
319 | #include "lighttpd-inc.conf" |
---|
320 | |
---|
321 | #### include_shell |
---|
322 | #include_shell "echo var.a=1" |
---|
323 | ## the above is same as: |
---|
324 | #var.a=1 |
---|
325 | |
---|
326 | |
---|
327 | |
---|
328 | include_shell "/opt/local/etc/lighttpd/include-sites-enabled.pl" |
---|
329 | |
---|