publicfile uses ucspi-tcp to handle incoming HTTP and FTP connections. Before installing publicfile you need to install ucspi-tcp 0.83 or above. Make sure that the ucspi-tcp programs are in your system's default path.
publicfile uses daemontools to start, monitor, and control the HTTP and FTP services. Before installing publicfile you need to install daemontools 0.61 or above. Make sure that the daemontools programs are in your system's default path.
Unpack the publicfile package:
gunzip publicfile-0.52.tar
tar -xf publicfile-0.52.tar
cd publicfile-0.52
Compile the publicfile programs:
make
As root, install the publicfile programs in /usr/local/publicfile:
make setup check
publicfile relies on svscan to start it and to restart it at boot time. Your boot scripts should already be running svscan in a /service directory.
publicfile needs to know which host names to treat as local names for HTTP. Make a list of acceptable names, all in lowercase: e.g., www.heaven.af.mil and www. You should also include your IP address if you want to allow that in URLs: e.g., 1.2.3.4.
publicfile makes files available from a public file area inside a new directory hierarchy, typically called /public. Decide what hierarchy name you want to use, and create the hierarchy with your selected host names by running the configure program (all on one line):
/usr/local/publicfile/bin/configure ftp ftplog /public www.heaven.af.mil www 1.2.3.4
Replace
-d50000
with
-m12345678
in /public/httpd/run
and /public/ftpd/run.
Finally, tell svscan about the HTTP and FTP services:
ln -s /public/httpd /public/ftpd /service
svscan will start the services within one minute.
./rts > rts.out
cmp rts.out rts.exp
Normally this prints nothing.
Create a world-readable /public/file/0/index.html, and try accessing it with your favorite HTTP and FTP clients.
Check the status of the HTTP and FTP services:
svstat /service/httpd /service/ftpd
svstat /service/httpd/log /service/ftpd/log
head -1 /service/httpd/log/status /service/ftpd/log/status
To report success:
( echo 'First M. Last'; cat `cat SYSDEPS` ) \
| mail djb-qst@cr.yp.to
Replace First M. Last with your name.