"Linux Gazette...making Linux just a little more fun!"


By Michael Holve

I've been using the Apache Web server for several years now, both to serve my own Website as well as commercial sites. In all this time, this small, fast server has never failed me. While I'm perfectly happy with command line tools being a UNIX freak and all, let's face it - this is a Windows mentality world. People like GUI interaction with their programs. This has been a long standing argument over the Apache Web server - the lack of a GUI.

There are currently several projects on the Internet to provide such a front-end for Apache. Why write another, you ask? Out of the projects that are currently available, most lack an easy to use layout, support all of Apache's features in an open, modular way or both. It is my vision to create a tool that can run on many platforms with as little fuss on the part of the user as possible and have a great growth potential.

Version 1.0 launched the afternoon of October 16th, 1998. Within the first 24 hours, it was downloaded 1,036 times and the TkApache Web page had 1,400 visitors. Not staggering numbers, but since then it's been downloaded somewhere around 150 times per day. This version was originally going to have some additional features but the other developer and I, Lance Dillon, decided to concetrate on finishing the core features and doing some quick bug testing to get it released in time for ApacheCon in San Francisco that week. That and the Emails to the nature of "where can I get it?!" streaming in at a rate of 30 or so a day...

Other neat features include callouts to Netscape to view the HTML documentation (will sport context sensitive, internal and browser-independant help in future versions), a setup/install window and a tail window. The tail window is like the UNIX "tail -f" command, which allows you to watch your log files in real-time. TkApache allows you to monitor your access and error logs.

So where is TkApache headed? Our next goal is version 2.0 with maintenance releases along the way to fix bugs as we discover them. There are some lofty goals for this next version, some of which can already be seen in the code for the initial version. This is the support of modules. We have envisioned an interface that can include user submitted or internally developed modules to support the vast number of Apache modules and add-ons like SSL, PHP and mod_perl, among others. Also planned is performance graphing of CPU/RAM loads, number of processes, Website visitors, etc. and virtual host support. The user interface will evolve along with it to handle the load of information that must be dealt with, formerly taking up three rather good sized configuration files. I find GUI design to be a lot of fun and a pet peeve of mine. It's got to look good and be usable or else it's just in the way.

What makes it tick, and how does all this relate to Perl? TkApache is written entirely in a combination of Perl and the Tk toolkit, known as PerlTk. Originally I started with Tcl/Tk and Perl, but it was a total hack. While I loved working with the Tk toolkit, I wasn't to familiar with, or interested in Tcl. Perl was more my speed, and when I became aware of the PerlTk module, it was a perfect match for rapid prototyping. The GUI design is really fun to work on, although it can be frustrating sometimes, but it's really quite easy. The whole solution allows all of Perl's wonderful text handling to be used in dealing with all this text in the configuration files. Weighing in at over 8,000 lines of code - TkApache is very portable (there are some current items that make it less than optimal which will be addressed in a maintenance release) and should run on Macintosh or Windows, as well as any UNIX platforms without modification. We're trying to keep the module count down, only to make it easier for potential users to get up and running, although we do currently rely on Data::Dumper and some File::Copy routines (all part of 5.005+).

Do stop by the TkApache Web site and see what you think. If you're familiar with Perl and/or Tk and would like to contribute to the project, you're very welcome to. Or, if you'd like, we're also happy to receive feedback on it. There's screenshots and documentation available online.

Michael Holve mike@eunuchs.org

TkApache Web Site: http://eunuchs.org/linux/TkApache/index.html

Copyright © 1998, Michael Holve
Published in Issue 34 of Linux Gazette, November 1998