TWikiInstallationLinux

From Dietrich Blog (Strato)
Revision as of 17:09, 30 June 2007 by Dkracht (talk | contribs)

Jump to: navigation, search

TWiki beim Web-Provider unter Linux installieren

Siehe auch: TWikiInstallation

Mein Web-Provider

Berechtigungen:
Mein Web-Hosting-Provider ist [Westhost|http://www.westhost.com/vps.html Westhost] in Utah. Westhost bietet ein WebProvider als sog. Virtual Private Server d.h. ich bekomme als User quasi ein Linux-System für mich mit so etwas ähnlichem wie Root-Rechten. Aber nur "quasi", soll heissen virtuell. Ich habe aber sehr viele Möglichkeit, selbst in mein virtuelles System einzugreifen. Dazu baue ich eine SSH-Session zu meinem virtuellen Linux-Server in Utah auf und schon geht's los.
Apache:
Version 1.3.27 war bereits installiert
Perl:
Version 2.6.1 war bereits vorhanden und es lief bereits eine Perl-Applikation: ht/Dig.... Die für TWiki nötigen Perl-Module konnten mit CPAN nachinstalliert werden.
RCS:
ist beim Provider nicht vorhanden. Mal sehen, wie weit ich ohne es komme...

Verzeichnisse einrichten und TWiki hochladen

TWiki-Verzeichnis:
Unterhalb des Apache-DocumetRoots eingerichtet: /var/www/html/twiki
TWiki hochladen:
Mit FTP habe ich dann meine ganzen TWiki-Windows-Dateien dorthin hochgeladen.
TWiki-Unterverzeichnisse
Berechtigungen für die TWiki-Unterverzeichnisse in Apache-Konfigurationsdatei httpd.conf einrichten.

Perl-Scripts zum Laufen bringen

Apache-Einstellungen:
ScriptAlias für /twiki/bin
Shebang-Zeile:
In den TWiki-Perl-Scripts musste die Shebang-Zeile wieder geändert werden auf: #!/usr/bin/perl
chmod:
Die TWiki-Perl-Scripts mussten auf executable gesetzt werden: chmod 755 ...

TWiki-Konfigurationsdateien anpassen

/twiki/bin/setlib.cfg:
Hier musste der Pfad zum TWiki.pm eingetragen werden.
/twiki/lib/TWiki.cfg:
Hier müssen diverse Urls und Datei-Pfade angepasst werden.
Testen:
Der Aufruf des TWiki-Test-Scripts /twiki/bin/testenv ist äusserst wichtig. Alle Meldungen sollten genauestens analysiert werden.

Apache Authentication einrichten

Überblick:
Die User-Verwaltung von TWiki benutzt die User-Verwaltung von Apache mit (vereinfacht gesagt). Deshalb muss als erstes eine funktionierende Apache Basic Authentication für das Verzeichnis /twiki/bin eingerichtet werden. Diese kann auch zunächst losgelößt von TWiki getestet werden. Eine guten Überblick gibt TWiki.TWikiUserAuthentication
Datei .htaccess:
Die Datei .htaccess in /twiki/bin musste angepasst werden. Die Eintragung AuthUserFile /var/www/html/TWiki/data/.htpasswd funktionierte nicht, da ich mich als alter Windows-Mensch erst wieder an die Signifikanz der Gross-/Kleinschreibung in Linux gewöhnen musste. Erst /var/www/html/twiki/data/.htpasswd hat funktioniert, denn ich hatte, wie oben auch beschrieben das TWiki-Verzeichnis schlicht als twiki erstellt.
User einrichten:
Das Einrichten der User (Apache-User und TWiki-User) erfolgt durch das TWiki-Topic TWiki.TWikiRegistration .Als erstes habe ich die TWiki.TWikiRegistration umbenannt in TWiki.TWikiRegistrationIntranet und dann die als Variante vorhandene TWikiRegistrationPub umbenannt in TWiki.TWikiRegistration, damit sie zum Standard wird. Hintergrund: Bei der sog. Intranet-Variante geht TWiki davon aus, dass es bereits eine Authentifizierung gibt, aber mit anderen, bereits feststehenden Userids. Diese werden dann lediglich mit den TWiki-Userids verknüpft. Bei der Pub-Variante, die ich hier verwende, werden die TWiki-Userids und TWiki-Passwörter automatisiert durch ein Perl-Script (mit dem Apache-Programm htpasswd) in die Apache-User-Datei .htpasswd eingetragen.

RCS

Aus der TWiki-Sekundärliteratur habe ich herausgelesen, dass TWiki zwingend RCS benötigt und zwar zur Datenhaltung und Versionsverfolgung. RCS war bei meinem Provider aber nicht vorhanden. Was tun?

Eins vorweg: Ohne ein RCS kommt man mit TWiki auf jeden Fall auch schon ganz schön weit. Die Oberfläche läuft, man kann navigieren, Seiten betrachten, Suchen u.v.a.m. Beim Editieren und Speichern kommt dann aber doch RCS irgendwie ins Spiel. Die aktuellen TWiki-Topic-Seiten sind immer als schlichte ASCII-Dateien vorhanden. Z.B. steht das Topic WikiOhneRcs schlicht im ASCII-File WikiOhneRcs.txt - deshalb funktioniert ja auch das Anzeigen der TWiki-Topics ohne RCS. "Lediglich" die früheren Versionen einer Seite werden mit RCS verwaltet.

Wenn man nun doch die Versionsverwaltung benötigt, ist die einfachste Lösung, das im Lieferumfang von TWiki enthaltene RCSLite zu aktivieren. Dies ist ein in Perl-Scripts nachempfundenes RCS, das aber evtl. nicht so stabil funktioniert wie ein echtes RCS. Deshalb rät der Author zur Vorsicht in Produktiv-Umgebungen. Die Aktivierung von RCSLite erfolgt in der TWiki-Konfikurationsdatei TWiki.cfg.

RCSLite schreibt falsches Datum z.B. date 2004.00.01.12.33.50; author Hugo; state Exp; für den 01-Jan-2004. Das ist erstens unschön und führt zweitens zu Folgefehlern, z.B. beim Speichern "month -1 out of range 0..11" in TWiki.pm line 1023.... Das Problem ist als bekannt dokumentiert unter: TWiki:Codev.MonthOutOfRangeWithRcsLite aber in meiner TWiki-Version 01FEB2003 noch nicht korrigiert.

Offenes Problem mit RCSLite: Beim Erstellen neuer Seiten (Topics) wird das Datum völlig verstümmelt.

Folgendes Verhalten ist reproduzierbar:

  1. Editieren und Speichern zählt die Revisionsnummer hoch und zeigt zeigt auch das richtige Datum für diese Revison.
  2. Ein erneutes Editieren und Speichern innerhalb des Lock-Zeitraums zählt beim Speichern die Resivionsnummer nicht hoch (richtig) und scheint ein richtiges Datum am Bildschirm anzuzeigen.
  3. Ein weiteres Editieren führt zum falschen RCS-Datum: "70.01.01". Es könnte evtl. beim Schritt 2 schon intern etwas schief gelaufen sein.

Problemumgehung: In TWiki.cfg $doKeepRevIfEditLock = "0"; d.h. "No", dann wird die Revisionsnummer immer hochgezählt und der Fehler mit dem falschen Datum kommt nicht mehr zum Zuge.

Das LDAP-Plugin

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

Es gab 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="..."

Beispiel für LDAP und LDAP-Plugin: Adressbuch.

Das ExplicitNumbering-Plugin

Das TWiki.ExplicitNumberingPlugin: Läuft auf Windows2000 mit Cygwin auf Anhieb, dagegen beim Provider nicht.

E-Mail-Konfiguration

TWiki möchte gern E-Mails verschicken z.B. wenn man neue User anlegt oder wenn man geänderte Seiten (Topics) abspeichert. Dazu muss ein SMTP-Server und die erforderliche Userid/Password-Authentification-Geschichte eingerichtet werden. Das ist heutzutage nicht mehr so einfach (No SMTP Relaying, SMTP after POP, SMTP AUTH!!!!!).


-- Main.DietrichKracht - 31 Dec 2003