inetd
to run httpd
whenever a request comes in. (These steps are the same for any daemon
under unix: you will probably find a similar thing has been done for
the FTP daemon, ftpd,
for example.)
httpd
into a suitable directory such as
/usr/etc.
Make it owned by root
, and make
it writable only to root,
for example by saying:
chmod 755 httpd
/etc/services
file, or use the name of
a specific service of your own if you want to use a special port
number. Standard port number for HTTP is 80.
http 80/tcp # WWW serverExceptions:
/etc/inetd.conf.
http stream tcp nowait root /usr/etc/httpd httpdFirst word is the same as in
/etc/services
file.
If you want to pass command line options or
parameters to httpd,
they would listed be in the end
of line, for example to set the rule file to something else than the
default /etc/httpd.conf:
http stream tcp nowait root /usr/etc/httpd httpd -r /my/own/rulesNote: For
httpd
version 2.15 and later
we recommend that it is run as user root.
Running httpd
as root
is safe, since it
automatically resets its user-id to nobody.
However, if
you decide to use access authorization features, and you need to serve
protected files, httpd
will have to be able to set its
user-id to some other uid as well. In any case, httpd
always sets its user-id to something other than root
before serving the file to the client.
Note: /etc/inetd.conf
syntax varies from
system to system, for example all systems don't have the field
specifying the user name, in which case the default is
root.
If in doubt, sopy the format of other lines in
your existing inetd.conf.
Note: There seems to be a limit of 4 arguments passed
across by inetd,
at least on the NeXT.
inetd.conf,
find out the process number of inetd,
and send a "HUP"
signal to it. For example on BSD unix do this:
> ps -aux | grep inetd | grep -v grep root 85 0.0 0.9 1.24M 304K ? S 0:01 /usr/etc/inetd > kill -HUP 85For system V, use
ps -el
instead of ps -aux
.
Be aware that on some systems your local file /etc/services may not be
consulted by your system (see notes on debugging).