Nutshell Summary of Windows Install Cookbook

This summary of WindowsInstallCookbook is for you if:

Table of Content:

The Essentials

TWiki will run on any combination of Operating System + Perl + Webserver. TWiki requires all three but doesn't care which three. Each permutation has its own quirks to deal with. Which combination is easiest depends on your personal background and experience. This guide covers only one possible configuration of many: Windows 2000/XP + Perl-Cygwin + Apache-Win32.

TWiki also requires the RCS revision control system but is more picky about which flavour (this guide uses RCS-cygwin).

Head to http://twiki.org/ and download the latest release.

Download, Install & Test Apache-Win32

http://www.apache.org/dyn/closer.cgi and download apache_1.3.X-win32-x86-no_src.msi where 'X' is 20 or higher. There are some issues with Apache 2, see TWiki:Codev.IssuesWithApache2dot0.

Download, Install & Test Cygwin

http://cygwin.com, and click the Install Cygwin Now link. Save the setup.exe in a directory, e.g. c:\download\cygwin-dist. Run the Cygwin setup.exe file - this will also install Perl and RCS in one fell swoop.

Set the HOME environment variable to c:\cygwin\home\administrator through the Control Panel, System applet.

Fire up Cygwin and verify the version numbers are correct. RCS: 5.7, Perl: 5.6.1.

Configure cygwin for binary mode omitting this step leads to a partially working system that corrupts RCS files.

Configure Apache

Edit c:/apache/conf/httpd.conf and adapt to local environment as necessary. Change

<Directory  "C:/twiki/bin/">
    # Changing default None to All in next line, to enable .htaccess
    AllowOverride All
    Allow From All
    Options  ExecCGI
    SetHandler cgi-script
</Directory>

# Environment setup required to run Apache as service or as a
# standalone process.
<IfModule mod_env.c>
   # Adjust TZ for your server timezone, e.g. EST5EDT - put the non-daylight-savings
   # timezone code first (e.g. EST or GMT), followed by the number of hours that it's behind GMT 
   # during non-daylight-savings time (use '-5' for timezones in advance of GMT).
   SetEnv TZ GMT0BST
   SetEnv RCSINIT -x,v/
   # Adjust TEMP and TMP for your server and create directories if necessary
   SetEnv TEMP c:/temp
   SetEnv TMP c:/temp
   SetEnv LOGNAME system
   SetEnv HOME c:/twiki
</IfModule>

Add an AddHandler line to the <IfModule mod_mime.c> section of httpd.conf - this removes the need to rename all the TWiki CGI scripts later in the installation. Note the trailing '.' on the AddHandler line.

#
# Document types
#
<IfModule mod_mime.c>
    # TWiki setup - avoid renaming scripts
    AddHandler cgi-script .
</IfModule>

Install TWiki

Download the latest TWiki release and save it in the c:/twiki directory. Unzip in place.

Configure TWiki

Edit c:/twiki/lib/TWiki.cfg and adapt to local environment. Pay attention to the section "# variables that need to be changed when installing on a new server:". Example values (assumes cygwin-perl is being used. ActiveState users need a different syntax. Read the real cookbook for details,):

$wikiHomeUrl      = "http://yourdomain.com/bin/view";
$defaultUrlHost   = "http://yourdomain.com";
$scriptUrlPath    = "/bin";
$pubUrlPath       = "/pub";
$pubDir           = "/twiki/pub";
$templateDir      = "/twiki/templates";
$dataDir          = "/twiki/data";
$safeEnvPath      = "/bin";
$rcsDir           = "c:/cygwin/bin";
$egrepCmd         = "/bin/grep -E";
$fgrepCmd         = "/bin/grep -F";

Edit the CGI Scripts

You must use the Cygwin shell to do this (unless you are a Perl expert) - don't use the Windows command shell, cmd.exe (aka DOS Prompt). Change #!/usr/bin/perl -wT to #!c:/cygwin/bin/perl -wT . Example script to do this (explanation):

Perl module installation

From the Cygwin shell, type export TEMP=/c/temp (add it to ~/.profile), then fire up cpan (will ask a schwack configuration questions if it hasn't been run before) and install =Net::SMTP, Digest::SHA1, MIME::Base64

Re-lock RCS files

Go to http://yourdomain.com/bin/testenv - this provides a lot of detail, including warnings. Write down the Apache server's userid that is given by this script - typically either 'system' or 'administrator' - I'll assume 'system' from now on.

If something goes wrong: to restore your existing files from the backup, just type tar xzvf all-files.tar.gz and all your files, both .txt and .txt,v, will be back as they were before the edits.

After a few days of everything working well come back and delete the files which end with ~~~.

Email Setup

Set the SMTPMAILHOST variable in TWikiPreferences to an SMTP email host that is reachable and currently working. In the same place, you also want to change WIKIWEBMASTER and SMTPSENDERHOST.

Testing your TWiki Installation

If anything doesn't work, go back and check the configuration of the Apache httpd.conf file, and TWiki.cfg. Have a look at the Apache error log, c:/apache/logs/error_log ,and the TWiki error log, /twiki/data/log*.txt ,and if necessary enable debugging on selected scripts (the commands are right at the top of each script) - the results go into /twiki/data/debug.txt .There is also a /twiki/data/warning.txt file that contains less serious messages.