Personal Web Server

by Theo Verelst

In this time when a lot of people regularly use web browsers and get used to them, the information flow, except in emails, is mostly one direction, to the consumer.

To prevent the claiming of the production means of information, web server should also be available to the model man, and since internet connections are also in our 'rich world' becoming possible in more than 1kb/s special computer form, it would be a good idea to make serving pages possible for a wider audience, and aiming at the normal use of a web server for advanced consumers to share their texts, (holiday) pictures, hobbies (is that spelling correct?), political views, public agendas, and movies and web cam materials.

Tclhttpd is a good basis for a working web server, and this page is intended to outline, or maybe spell out when I find the time to use it easily and in a general way as a Personal Web Server.

Actually I just (27 may 2003) got back from holiday in France, while I live in Holland by birth, and for some weeks I wanted to continue the operation of my habitual web server, which is also used for files on this wiki [L1 ] as a test and because, well, I wanted to continue serving pages and movies.

This of course required the computer running the server to stay powered and ON, which was doable in itself. I checked that it would restart automatically after a possible power failure, and it does, and wanted to run tclhttpd automatically, but not continuous for a few weeks, because I know that somehow the provider doesn't like a connection lasting more than the better part of a week without refreshing, and once the connection is lost, there is no point in continuing the server to run..

Since I got at least more than a few (varying from I guess some tens at least to thousands or so tops) hits per day, and like to as principle stay in the running the server biz 24/7 as the best test, I figured that I wanted to restart the server every night, thus running the chance that at most operation would be in trouble through a power or provider connectiong failure for no longer than the next (west euro time) night. The machine runs windows XP, of a not so upgraded version (those security fixes don't look very secure to me, and working like I do I don't need them much), except for multimedia stuff, which is stable completely running tcl, never had a (restarting) crash that way ever in a year or so I think (NOT otherwise, no sir, it still CAN crash...).

So I made a tcl script starting tclhttpd, basically a shorcut to the tcl file, which is installed to launch wish 8.4, and put it in the autostart directory (what is it again, /my documents/name/startup or something ...).

Further, I added a line to tclhttpd in the initialisation part which sets

 after [expr 1000*3600*24 - $delta] exec shutdown -r -now -force

Please check windows or otherwise (I have cygwin installed which does this sort of stuff too) docu to see what arguments shutdown requires to 'reboot' and to 'force', or the machine may not necessarily get to the actual point of the power off/on cycle.

Also, I added the saving of the page statistics information of the server, which is for that automatically starting version also automatically reread at startup. I'll get the code and make it a bit general later.

Result?

The server ran happily with more than a few hits per day all the time, I could easily access it from a few french countryside/medium town internet cafe's where its response time and behaviour was exemplatory.

It has been extended with some diect urls for for instance a 'fortune' program, and it serves video files, too, which all worked fine.

For those wanting to try for themselves, I will get the code here at some point, too, and beware that the out of the box tclhttpd on a windows (except maybe nt like, but seriously, I wouldn't vouch for that either) can be QUITE unsave for tcl aware hackers, and may leave you with major file damage when you are unlucky and uncarefull. Especially the tml pages and of course some of the example cgi's should be scrutinized first or simply not put under the docroot for more than experiments.


escargo 27 May 2003 - Note that Microsoft Windows in various versions used to include something Microsoft called at various times Personal Web Server or PWS.

TV Realy? I've worked with most versions of the notorious os from 3.1 over 95 98 2000/NT through XP and never heard of it... The P for personal I myself used at least before the concept of webserving as such (except over ftp which is fun too) didn't exist yet when I wrote PULS (personal unique library services) a synthesizer musical instrument librarian on the atari st, also some years ago I made a large HiFi/PA (Public Address) system, which I on my web pages nicked PPA.

Anyhow, I've (let's call it) been near to IIS and such on Windows, and know what nimbda and such can do, and unsolicited browser and mediaplayer scripts, and how many security bug fixes I *could* have downloaded for various versions of what once was realy advanced (the trs80 basic rom for instances 20 years ago), and was kindly informed by various parties that the security of web serving capabilities of the infamously softy os is hard to discuss in terms of countable issues....

escargo - A quick Google search for PWS Personal Web Server finds lots of links, such as [L2 ], [L3 ], [L4 ], [L5 ], [L6 ]. It appears PWS was available for Windows 95, 98, 98SE, ME, NT, and XP Pro (not XP Home).

And yes, this opened up a big can of worms for security on these systems. Apparently the PWS was necessary for verifying that web pages created with FrontPage really did what they were supposed to do.

TV That last I seem to remember from some 98 sys I 'found' frontpage on, but I guess that had no cgi's or IP control and such.