Computer: TWiki-Installation Windows (aus Wiki)

TWiki-Installation Windows (aus Wiki)

Installation von TWiki unter Windows

Siehe auch: TWikiInstallation

Grundlagen

Die TWiki-Installation unter Windows gestaltet sich dank des hervorragenden Installationskochbuchs TWiki:TWiki.WindowsInstallCookbook zunächst zügig und einfach. Einige kleinere Probleme treten dann aber doch noch auf. Zu grossen Teil beruhen die Probleme auf einem noch nicht entwickelten technischen Gesamtverständnis der TWiki-Prinzipien.

Cygwin:
Wurde von mir installiert in das Root Install Directory d:\Programme\Cygwin\…, wobei als Local Package Directory d:\Archiv\Cygwin\… fungiert. Die Download erfolgen von http://www.cygwin.com
TWiki:
Habe ich gemäß Kochbuch in ein neues Verzeichnis d:\twiki\… installiert (sprich kopiert) und dies als Apache-DocumentRoot eingerichtet. Das Kochbuch hat sicher Recht, dass dies die allereinfachste Möglichkeit ist, aber dies muss man dann doch sehr schnell wieder ändern, denn meist hat man ja für seinen Apache schon ein umfasserendes Gesamt-Spektrum an Anwendungen und Konfigurationen, in die TWiki dann eingepasst werden muss z.B. als Unterverzeichnis unter das vorhandene Apache-DocumentRoot.

Installationsplattform

Betriebssystem:
Windows2000 Professional mit SP4
Apache:
Version 1.3.27
Cygwin:
cygwin.dll Version 1.5.5 (cygcheck -s)
Perl:
Version v5.6.1 unter Cygwin (perl -v)
RCS:
Version 5.7 unter Cygwin (rcs -V)

Kurzanleitung

Übertragung eines vorhandenen TWiki auf einen neuen Computer unter WindowsXP, ohne Cygwin, ActivePerl v5.8.0, Apache 3.1.29 ohne mod_perl, GNU RCS 5.7
Dabei immer mit dem Aufruf http://yourserver/twiki/bin/testenv kontrollieren, welche Fehler noch existieren.

  • Setlib.cfg in /twiki/bin muss den Pfad zu /twiki/lib enthalten
  • Shebang-Zeile der Perl-Scripts in /twiki/bin anpassen (wenn ohne mod_perl)
  • Appache-Server als Windows-Dienst unter dem Konto “dkracht” starten (weil die RCS-Locks diesen Usernamen tragen)
  • Die ausführbaren Unix- und RCS-Programme beschaffen und in das vorgesehene Verzeichnis (Ordner) kopieren)
  • Die Datei .htaccess im Ordner /twiki/bin anpassen

Probleme mit TWiki

(1) Windows2000 NTFS Zugriffsrechte

Nach der Durchführung der Installation nach dem sehr guten Kochbuch war das Phaenomen, dass viele der Seiten mit Server Error 500 abstürzten. Das konnte eingegrenzt werden und betraf im ersten Ansatz alle Seiten, die %SEARCH enthielten. Z.B. auch die, die ein %INCLUDE SITEMAP machten, das seinerseits einen %SEARCH enthielt. Eine richtige Fehlermeldung erhielt man, wenn man in der SEARCH-Form mal was eingab:

$ENV{PATH} insecure directory -T switch Search.pm line 290

Zu dieser Fehlermeldung konnte man in TWiki.Support.InsecureDirectory eine gute Erklärung finden: In twiki.cfg hatt ich den $saveEnvPath auf d:/Programme/Cygwin/bin gesetzt, weil da das gnudiff zu finden war. Dieser Windows-Ordner hatte im NTFS-Filesystem Zugriffsrechte für “Jeder”. Nachdem ich das herausgenommen hatte kamen alle TWiki-Seiten einwandfrei.

(2) Die Funktion WebIndex

Unter Windows 2000 mit Cygwin funktioniert die Index-Funktion bestens. Ein weiterer Versuch mit Windows XP und ohne Cygwin-Installation (nur einige Cygwin-Dateien kopiert) liefert bei WebIndex erstmal eine leere WebIndex-Seite. Erst nachdem in der TWiki-Konfigurationsdatei TWiki.cfg der Eintrag $safeEnvPath geändert wurde auf: $safeEnvPath = ‘c:\home\kracht\cygwin\bin;c:\windows\system32’; funktioniert der WebIndex auch unter Windows XP mit dem kopierten Cygwin.

(3) Editieren und Neuanlegen von Seiten nur wenn man angemeldet ist

Nachdem das grosse Problem nun gelöst ist, erhebt sich die Frage, wie kann ich nun schnell meine Seiten in TWiki anlegen? Nach Edit und Save tut sich einfach nix. Ich lese, man muss angemeldet sein. Aber wie macht man das? Eine Login-Maske sehe ich nirgends. Aber man kann neue User anlegen: TWiki.TWikiRegistration (ohne Passwort) und mit: TWiki.TWikiRegistrationPub (mit Passwort). Aber ich kann eingeben, was ich will der neue User wird nicht wirklich angelegt, soll heissen erscheint nicht in Main.TWikiUsers und ich kann nachwievor nichts Editieren…

Nach einigem Hin und Her dämmert es mir: Die freundlichen Passagen über die Authentication mit Apache (die ich ja kannte) waren nicht nur nette, optionale Schnörkel, sondern zwingend notwendig. Die Authentifizierung in Apache ist die Anmeldung für TWiki. Also klare Sache: Die Datei .htaccess im Ordner /twiki/bin scharf gemacht und in der Apache-Konfigurationsdatei httpd.conf auch erlauben mit:

<Directory "d:/twiki/bin/"> 
	AllowOverride All
</Directory>

…und schon funktioniert alles bestens. Mit TWiki.TWikiRegistrationPub werden tatsächlich neue Apache-User mit Passwörtern für basic authentication in der Passwortdatei .htpasswd angelegt. Beim Zugriff auf bestimmte Perl-Scripts in /twiki/bin (edit, save,…) erfolgt die Authentication durch Apache und dann geht’s. NUn noch schnell TWiki.TWikiRegistration umbenennen in TWiki.TWikiRegistrationIntranet und TWiki.TWikiRegistrationPub umbennen in TWiki.TWikiRegistration und alles läuft im Standard mit der Apache-Basic-Authentification.

Unter WindowsXP mit Apache 2 arbeitet htpasswd standardmäßig mit MD5. Deshalb nützt es nichts, die Datei .htpasswd von Windows 2000 einfach zu kopieren. ….. ??????? Muss noch unter XP weiter gestestet werden…..

(4) Wie und wann werden die Revision-Nummern hochgezählt?

Nun endlich geht alles ganz super. Aber beim vielen Speichern von immer neuen Versionen sehe ich nicht dass Revision-Nummern hochgezählt werden und demzufolge scheinen auch keine alten Revisions im RCS gespeichert zu sein…

Vorsichtshalber setzte ich mal den Owner aller Files in /twiki/data/Main auf SYSTEM mit: chown system *.* Ich glaube schon, das war die Lösung, denn bei einer Seite ( ZumSchmunzelnUndNachdenken ) habe ich jetzt tatsächlich R1.2 und R1.1.

Aber beim weiteren Arbeiten mit weiteren Seiten bleibt es immer bei R1.1 – wie oft ich auch speichere. Beim Speichern gibt es da aber noch zwei Häckchen zu setzten: Minor Change, don’t notify und Release Edit Lock . Nach einigem Probieren glaube ich, dass man Release Edit Lock ankreuzen muss, erst dann werden beim Speichern die Locks aufgehoben und ein richtiger “Checkin” ins RCS gemacht und das heist, auch die Revisionnummer erhöht. Eine ganz sinnvolle Mimik, denn man kann ruhig mehrmals speichern, ohne gleich neue Revisionsnummern zu erzeugen. Erst wenn man einen gewissen neuen Stand erarbeitet hat kreuzt man Release Edit Lock an und setzt damit bewusst eine neue Revision.

(5) Das LDAP-Plugin

Das TWiki.LdapPlugin erfordert das Perl-Modul Net::LDAP. Konnte beim Provider unter Linux problemlos mit CPAN installiert werden – auf Windows2000 und Cygwin funktionierte die Installation von Net::LDAP mit CPAN zunächst nicht.

Ausserdem gab es zwei kleinere Probleme:

  • In der Plugin-Doku stand “Net::Ldap”, richtig ist aber: “Net::LDAP”
  • In der Plugin-Doku stand “base=”….”, richtig ist aber: “basedn=”…”

— Main.DietrichKracht – 28 Dec 2003