Send suggestions, flames, comments, whatever to CGI to manage a webcam and allow selective access to it; or a public list of other people who have come to visit the page... Keeps track of hits on the picture, not the pages (so doesn't work if images are off on the browser) call with http://.../webcam.cgi/index.html or no path and it displays a configurable page showing the cam pic that refreshes (hopefully smart enough to fool some idiot browsers into refreshing the pic too) and a list of recent (possibly current) visitors to the pic call with http://.../webcam.cgi/visit.html or visitors.html and it just displays the list of who's looking at the picture call with http://.../webcam.cgi/login to log-in as a user (only for politeness; if the cam owner wants you to log in, you get the login box automatically) call with http://.../webcam.cgi/config to enter config mode; setup cam page layout, users, titles, preferences... Setting up the CGI: Try putting it in it's own directory; it is also helpful to have a folder "./data" under the directory the cgi is in to store data files. EG. (assuming you want to call it "joecam" and apache runs as nobody) mkdir /usr/local/share/apache/joecam/ mkdir /usr/local/share/apache/joecam/data cp nph-webcam.cgi /usr/local/share/apache/joecam/ chown -R nobody /usr/local/share/apache/joecam/ chmod -R 0700 /usr/local/share/apache/joecam/data NOTE! IF you want to rename the CGI, the "nph-" in front of the name tells apache not to do header parsing; important since the CGI pretends to be a filesystem! Make directory accessible in Apache; possibly with an entry in httpd.conf like: SetHandler cgi-script AllowOverride None Options ExecCGI If you want to have it accessible from apache without it looking like a cgi; eg: http://www.foo.bar.com/webcam/ instead of http://www.foo.bar.com/joecam/nph-webcam.cgi/ An apache directive in httpd.conf like Alias /joecam "/usr/local/share/apache/joecam" Should work Once it is set up, edit the lines below pertaining to paths: If you followed the examples above, you would change 'PATH' to 'PATH' => "/usr/local/share/apache/joecam", and assuming your webcam program uploads to /usr/home/joecam/webcam32.jpg You would set 'CAM' to 'CAM' => "/usr/home/joecam/webcam32.jpg" Change the line @PRIV = ... to be the name of the main user you intend to use to edit system config. Eg, if you want to log in as a user called Joe, you would change it to @PRIV = ("Joe"); It does not have to be a valid user on your system; the program maintains a small user database of it's own. If for some reason you want to allow several usernames to edit the configuration, you can put them all in the array -- @PRIV = ("Joe","Billy-bob","Mary-sue"); Only the first user listed will be created when the program is run the first time. When the script runs the first time, it sets up a default configuration and a privileged (ie. able to edit the config) user called whatever you have listed as the first user in @PRIV. By default, this is "joeuser". The password is the same as the username. Use this to go to config mode, have a look at the system settings and change the password on your account; click the link on the username, type something (plaintext) in the password box, then update the user. That should be all there is to setting up the program!