Developer

WikiWikiWeb: A flexible and dynamic publishing technology

Learn about the collaborative WikiWikiWeb concept, and find out how to install, configure, and customize the software.

By David J. Emberton
(5/31/01)

Imagine visiting a Web site and editing any of the content that you find there—including adding new pages. Driven by a database and server-side scripting, the WikiWikiWeb concept enables a brand-new generation of collaborative communities.

Unlike traditional message boards, which rely on a threaded model of communication, Wiki sites contain documents in regular page form. Instead of a small group of authors and a larger group of readers, everyone is an author and a reader. In a copyright-obsessed world, such an open system might seem odd or even chaotic. The tool will prove most valuable to communities founded on free information exchange.

Although not slanted towards creating rich media experiences, Wiki nonetheless produces highly interactive sites that are just as magnetic as Shockwave movies and much cheaper to produce.

Inspired by the Hawaiian expression for quick (wiki wiki), Smalltalk developer Ward Cunningham created a Web publishing system that serves site developers and visitors equally. The first WikiWikiWeb site still operates at its original location. Since its inception, the Wiki concept has spawned countless clones and implementations on various server platforms. You can host your own Wiki sites or have someone else host them for you, for free or for a fee.

A unique model, a Wiki site is composed of page objects with names such as TheSamplePage. To create or edit a new page, users just have to type content into a text box. When the user saves the page, the Wiki software handles the coding. Quick content and site development makes Wiki fun and easy to use for any participant.

In this Media Mojo, I'll show you where to find a list of free Wiki software and walk you through installation on a PHP-enabled Web server.

I'm a big fan of open source projects such as WikiWikiWeb because of the variety of software available to developers, which is particularly useful if you have special needs or questions about server compatibility. Wiki has a comprehensive list of Wiki Engines that you can download and install. If you're not a server expert, you can choose from the selection of Wiki Farms, which do the heavy lifting for you.

For the purposes of this column, I've selected PHPWiki, which is based on the freely available PHP language and is compatible with practically any server. I did a test installation on a Red Hat Linux server running PHP 4.0.

Download and unzip the software
At this time, the latest version of PHPWiki is 1.2.0. It can be downloaded from SourceForge, a member of the Open Source Development Network. The software is stored in GZIP format and can be decompressed using StuffIt Expander, WinZip, or any other reliable archive program.

Web-based software (especially PHP) consists primarily of text files, making the whole project simple to edit and manage. Start by downloading and unzipping the software, then crank up your favorite text editor.

Set administrator passwords
Before installing PHPWiki, set a unique administrator username and password. With an administrator ID, you can make special changes to your WikiWeb once it's running, such as locking certain special pages that you don't want altered.

To set the username and password, open up admin.php in your text editor and locate these lines:

    $wikiadmin = "";
    $adminpasswd = "";
Simply type in the appropriate information between the quotation marks, then save the file. After the Wiki is up and running, you can log in as an administrator by accessing admin.php through your browser.

Configure the Wiki settings
PHPWiki supports multiple databases, as well as the default flat-file version. I decided to stick with the flat-file method since my site won't be very large, but there are some other details in lib/config.php that I wanted to change, such as the path to the site logo.

To make your own configuration changes, open up lib/config.php in your text editor and follow the commented instructions. If you don't feel comfortable changing these settings, skip straight to the next section.

Customize the look and feel
You can personalize PHPWiki by customizing the HTML templates that the software uses to display pages. These templates can be edited by hand or tweaked in a visual editor such as Dreamweaver. Dynamic content placeholders, replaced by the PHP scripts at run time, are flanked by three hash symbols (for example, ###PAGE### for the page title). During customization, I noticed that Dreamweaver's automatic indentation of code tended to confuse PHPWiki, so be sure that any lines that were originally flush to the left stay that way, in order to prevent quirky performance issues.

Wiki pages are intentionally simple, so you probably won't need to alter the format of the actual dynamic placeholders. Instead, you might want to change aesthetic elements, such as header graphics and page backgrounds. When the templates look the way you want, just save them and proceed to the next step.

Upload and first run
Now comes the easy part. Assuming that your server has PHP correctly installed, you just upload the contents of your PHPWiki folder. Once all the files have been successfully copied via FTP (I used the excellent Fetch for Mac OS X), open a Web browser and call up index.php on the server. It will automatically initialize the WikiWeb for you, and voilà!—your first truly collaborative Web site.

Building Wiki sites can be surprisingly addictive. Once your site launches, you'll find yourself checking the RecentChanges page regularly for new user additions and changes.

David J. Emberton, a frequent contributor to CNET Builder, is the lead author of the Flash Magic book series and the director of Emberton.com.

Editor's Picks

Free Newsletters, In your Inbox