---+!! Nutshell Summary of Windows Install Cookbook
This summary of WindowsInstallCookbook is for you if:
* You've already installed TWiki on Windows before and want a quick refresher of the important points.
* You've never installed TWiki on Windows before, but find the WindowsInstallCookbook too much to swallow right now. It is recommended you read through this summary to build a picture of the overall process, and then use the full cookbook as your guide as you actually do the install.
Table of Content:
%TOC%
---++ 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.
* Choose _Internet Install_ ; make sure default text file type is unix.; If you have the bandwidth and the drive space it is easier just to install everything ( _Install All_ ).
* The following packages are the minimal installation (~12mb): =bash, binutils, diffutils, gcc, grep, gzip, make, nano, ncftp, pcre, perl (5.6.1-2 or higher, but *not* 5.8.0), rcs (5.7-2 or higher), tar, textutils, unzip, w32api, wget=
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: =mount -b -s c:/twiki /twiki && mount -b -s c:/ /c && mount -b -c /cygdrive && mount=
* Test: =cd /twiki && echo hi >t && cat -v t= ;the output should be ==hi== _anything else indicates a problem._
---++ Configure Apache
Edit =c:/apache/conf/httpd.conf= and adapt to local environment as necessary. Change
* DocumentRoot from "C:/apache/htdocs" to "C:/twiki"
* <Directory "C:/apache/htdocs"> to <Directory "C:/twiki">
* Add:
# Changing default None to All in next line, to enable .htaccess
AllowOverride All
Allow From All
Options ExecCGI
SetHandler cgi-script
# Environment setup required to run Apache as service or as a
# standalone process.
# 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
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
#
# TWiki setup - avoid renaming scripts
AddHandler cgi-script .
---++ 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 ([[WindowsInstallCookbook#Editing_the_CGI_scripts][explanation]]):
* =$ perl -pi~ -e 's;#!/usr/bin/perl;#!c:/cygwin/bin/perl;' *[a-z]=
---+++ 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.
* backup all the twiki data files: cd /twiki/data && tar czvf all-files.tar.gz */*
* Edit all the RCS files at once: perl -pi~~~ -e 'NR <= 10 && s/nobody:/system:/' */*,v
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 TWiki.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
* testenv - use http://yourdomain.com/bin/testenv and check for warnings
* Page viewing (view script) - click around a few pages and make sure the links are OK
* RCS diffs (rdiff script) - click on the Diffs link and on the '>' links at bottom of page
* Edit a page, and register as a new user - tests page creation, use of register script to create a new user entry in /twiki/data/.htpasswd (the Apache password file), ability to send email via Net::SMTP, and whether SMTPMAILHOST was set correctly in TWikiPreferences.
* If you get a failure to register or send email, check the Apache error log, and that all CPAN modules were installed correctly in Step 6, Installing required Perl modules.
* Try typing tail -30 /c/apache/logs/error_log to see last 30 errors from Apache
* Edit a page - check revision increased and set to current date/time
* Edit the same page using another browser or PC, logging in as a different user - check there's a lock message (which you can override) and no double lines
* Check the Apache error_log file to see if there are any RCS errors so far
* Index - tests whether ls and grep are working
* Search - more tests for whether ls and grep are working
* Attachments - tests access to /twiki/pub directory.
* Try a binary attachment upload and check the number of bytes in the file has not changed - if it has, see the Install Cygwin section's note on the default text file type.
* Check the Apache error_log file again
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.