- simplify findhole() for use for 1 page only
[minix.git] / commands / httpd0995 / httpd.conf.5
blobc8b96c180b7662c8d8efbeadd357cb43613da1f9
1 .TH HTTPD.CONF 5
2 .SH NAME
3 httpd.conf httpd.mtype \- configuration files for the Minix httpd web server
4 .SH SYNOPSIS
5 .B /etc/httpd.conf
6 .B /etc/httpd.mtype
7 .SH DESCRIPTION
8 .B /etc/httpd.conf 
9 is the configuration file for the Minix httpd web server written by
10 Michael Temari.  A sample version is included with the distribution
11 archive and is unpacked in the source directory (normally
12 .BI /usr/local/src/httpdxxx).
13 Also provided is an example
14 .B httpd.mtype
15 file. This is an extension of the main configuration file which is normally
16 included when the main file is read.
18 The makefile does not install 
19 .B httpd.conf 
20 and 
21 .B httpd.mtype
22 automatically. The sample files included in the distribution are only  
23 examples, you must copy and edit them for the needs of your own 
24 installation.
25 .SH CONFIGURATION FILE FORMAT
26 .B httpd.conf
27 is an ascii file which consists of lines of the following form:
29 .B directive LWS [parameters separated by LWS]
30 .br
31 NOTE: LWS denotes Linear White Space which is spaces and/or tabs
32 .SH CONFIGURATION FILE DIRECTIVES
33 The following are valid configuration file directives (listed in the order 
34 they appear in the sample 
35 .B httpd.conf 
36 file provided in the distribution):
38 .B serverroot redirect user chroot logfile dbgfile dirsend direxec 
39 .B vhost auth proxyauth vpath include mtype 
41 To make the file more readable, for directives which occupy multiple
42 lines you may eliminate the directive on lines after the first and begin 
43 these lines with LWS.
45 .SH DESCRIPTIONS OF DIRECTIVES
47 .B serverroot path
49 The 
50 .B serverroot 
51 directive sets the translation for 
52 .B // 
53 to the given 
54 .B path.
56 .B redirect url
58 The
59 .B redirect 
60 directive will redirect the entire website via error code 
61 "301 MOVED PERM" to specified url and original path of request.
63 .B user username
65 The 
66 .B user 
67 directive causes the server to run as the given 
68 .B username 
69 otherwise the server will run as whoever started it (normally root).
71 .B chroot directory
73 The 
74 .B chroot 
75 directive causes the server to chroot to the given directory after
76 the configuration and log files have been opened.  Normally this will be the
77 home directory of the given username in the user directive.
78 .br
79 NOTE: 
80 .B /~user 
81 will be translated to the home directory of
82 .B user.
83 .br
84 NOTE:
85 .B // 
86 will be translated to the serverroot directory.
87 .br
88 NOTE: if this directive is used then beware of the consequences.
90 .B logfile filename
92 The 
93 .B logfile 
94 directive tells the server where to log http transactions.
95 .br
96 NOTE: the log file must exist to enable logging.
98 .B dbgfile filename
100 The 
101 .B dbgfile 
102 directive tells the server where to log debugging of http transactions.
104 NOTE: the debug log file must exist to enable debug logging.
106 .B dirsend filelist
108 The 
109 .B dirsend 
110 directive tells the server that when a directory is requested
111 that it should send the first file that it finds in the directory from the
112 .B filelist 
113 for the request.
115 .B direxec program
117 The 
118 .B direxec 
119 directive tells the server that when a directory is requested
120 and no file is found from the 
121 .B dirsend 
122 directive that it should run the given 
123 .B program.
125 NOTE: the program normally generates a directory listing on the fly using
126 the 
127 .B dir2html
128 program.
130 NOTE: the program access is considered 
131 .B X 
132 with no access restrictions.
134 .B vhost hostname vhostroot
136 The 
137 .B vhost 
138 directive is for defining access for virtual hosts.  If none are configured 
139 then any host is accepted.  If specified then access is only granted for 
140 requests for hosts which are configured here.  In the 
141 .B vpath 
142 section below the 
143 .B /// 
144 gets translated to the corresponding 
145 .B vhostroot.
148 .B auth authname authdescription access [passwdfile [users]]
150 The 
151 .B auth 
152 directive sets up different authorizations with the server.  The
153 .B authname 
154 is the name given to the authorization and is case insensitive.
155 The 
156 .B authdescription 
157 is the description of the authorization and is what
158 the user will see when asked to enter a username and password.  The
159 access is one or more of 
160 .B (RWX).  
161 .B R 
162 tells the server the URL can be read.  
163 .B W 
164 tells the server the URL can be overwritten.  
165 .B X 
166 tells the server
167 that the URL can and should be executed.  Access is in addition to normal
168 Unix security considerations.  For instance a file that can be written to
169 that does not have the 
170 .B W 
171 access will have an error returned.  The
172 .B passwdfile 
173 is the name of the password file to validate users against.  If
174 .B passwdfile 
175 is given as 
176 .B '.' 
177 then the system password file
178 .B (/etc/passwd)
179 will be used.  If no 
180 .B passwdfile 
181 is given then no authorization is allowed for anyone.  If no 
182 .B users 
183 are given then any validated user is authorized, otherwise only the given 
184 .B users 
185 are allowed.
187 .B proxyauth authname authdescription access [passwdfile [users]]
189 The 
190 .B proxyauth 
191 directive defines access authorization to be used for Proxy access.
193 .B authname 
194 = Same as auth above
196 .B authdescription 
197 = Same as auth above
199 .B access 
200 = Must be R to allow proxy
202 .B passwdfile 
203 = Same as auth above
205 .B users 
206 = Same as auth above
208 .B vpath from to [auth [access]]
210 The 
211 .B vpath 
212 directive sets up URL path translations and authorizations.  A
213 requested  URL that matches 
214 .B from 
215 will be translated to 
216 .B to 
217 with the given 
218 .B auth 
219 and 
220 .B access.  
221 If 
222 .B auth 
223 does not exist then the URL will have no 
224 .B access.
225 If 
226 .B access 
227 is not given then the access is taken from the 
228 .B auth 
229 record (see above).  A 
230 .B '.' 
231 in place of the 
232 .B to 
233 means that the server should use a translation from another 
234 .B vpath 
235 record, but associate the given 
236 .B auth 
237 and access with the requested URL.  A 
238 .B '*' 
239 may be at the end only of the 
240 .B from
241 to provide a wildcard match.  For example if the 
242 .B from 
243 has 
244 .B /AB* 
245 then any of
246 .B /ABCDEF 
247 or 
248 .B /AB 
249 or 
250 .B /ABmichael 
251 will match, but 
252 .B /AD or 
253 .B /a 
254 will not.  The requested URL is first checked against each 
255 .B vpath 
256 record until an exact match (meaning URL match 
257 .B from 
258 and 
259 .B from 
260 had no 
261 .B '*') 
262 is found or the end of the list.  Therefore a wildcard match will match 
263 the last 
264 .B from in the list in which it matched.
266 NOTE: if at the beginning of the to field
268       /~user will get translated to the home directory of the given user
270       // will get translated to the serverroot directory
272 .B include filename
274 The 
275 .B include 
276 directive tells the server to read configuration information
277 from the given filename.
279 NOTE: normally you get 
280 .B mtype 
281 directives in an included file.
283 .B mtype mimetype extensions
285 The 
286 .B mtype 
287 directive tells the server what 
288 .B mimetype 
289 to associate with files which have any of the given 
290 .B extensions.  
291 If no match is found then the file will be treated as 
292 .B application/octet-stream.
295 .SH FILES
296 .B /etc/httpd.conf
297 .B /etc/httpd.mtype
298 .B /etc/passwd
299 .SH "SEE ALSO"
300 .BR httpd (8)
301 .BR http_status (5)
302 .SH NOTES
303 The source directory contains a commented sample 
304 .B httpd.conf 
305 and 
306 .B httpd.mtype
307 files.
308 .P 
309 You can run the server as
310 .B httpd -t /etc/httpd.conf
311 to see whether the configuration file is being parsed correctly.
313 Although standard Minix does not have a graphical interface to support
314 browsers such as Netscape and Microsoft Internet Explorer, the 
315 .B lynx
316 browser can be used on 32-bit Minix systems with enough memory. You can point 
317 lynx to your own site to browse your own pages.
318 When debugging a web server there is nothing quite like browsing your own
319 pages to see whether things are working right. That said, be aware that
320 different web browsers may vary in how they interpet standard web page 
321 features, and will certainly vary in how they interpret "extensions" to
322 the HTML standards. So checking a page with several browsers on several 
323 platforms is always a good idea.
324 .SH BUGS
325 Not really a bug, but you can get in trouble if a real directory you want
326 to access shares the first part of its name with a 
327 .B vpath
328 definition. You just have to pay attention to the directory names you use.
329 .SH AUTHOR
330 The Minix httpd server was created by and is maintained by Michael Temari
331 <Michael@TemWare.Com>
333 Man page was compiled by Al Woodhull <asw@woodhull.com>
334 .\" updated 2006-06-01