Dieses Dokument ist nicht mehr aktuell. Es sind einige Veränderungen am Quellcode durchgeführt
worden, die ich noch nicht berücksichtigt habe. Ich werde eine neue Version planen, sobald die
Entwicklung der Forensoftware wieder weitergeht, da zum korrekten Betrieb unter Linux einige
Änderungen notwendig sind. Für den nächsten Entwurf plane ich außerdem noch, Installationshinweis
auch für FreeBSD mit einzubinden, so dass dieses Dokument als generelle Installationsanleitung
zu betrachten ist. Wer sich trotzdem schon jetzt an diesem Forum versuchen will, der sollte mich
mal kurz anschreiben,
dann kann ich der/demjenigen einige Tipps geben.
Was die Entwicklung des Forums betrifft mögen sich alle Interessierten bitte an Christian Kruse wenden, der die Software geschrieben hat. Unter
http://cforum.teamone.de/ sind weitere Informationen verfügbar.
Dieses Dokument ist im Moment nicht Teil von SELFHTML. Es ist ein Entwurf für ein Dokument, das es eventuell später mal werden kann.
Ich habe außerdem noch einen Patch für die Einbindung von Links und Hinweisen auf die FAQ neben das Postingformular geschrieben.
Diesen kann man hier finden.
![]() ![]() |
![]() |
SELFHTML Forum |
![]() |
Vorraussetzungen für die Installation:
Download & Compilation:
Installation:
Konfiguration:
|
![]() |
![]() ![]() |
libunicode-string-perl
,
unter SuSE heißt das Paket perl-Unicode-String
. Zum Herunterladen:
libunicode-map-perl
,
unter Redhat (vmtl. auch SuSE) heißt es perl-Unicode-Map
. Zum Herunterladen:
libunicode-map8-perl
. Zum Herunterladen:
libhtml-parser-perl
. Zum Herunterladen:
perl Makefile.PL
sondern über
perl Makefile.PL PREFIX=/usr/local
erzeugt werden,
sofern man die libtemplate nach /usr/local
installiert hat. Wenn man sie
ganz woanders hin hat, dann muss man PREFIX noch anpassen.
libxml-libxml-perl
. Zum Herunterladen:
![]() ![]() |
Hinweis:
Da sich neue Bibliotheken (korrekterweise) nach /usr/local/lib
installieren,
muss man sicherstellen, dass /usr/local/lib
in der /etc/ld.so.conf
drinnensteht. Dann erspart man sich einige Probleme.
cgi-lib.a
, die in /usr/local/lib
steckt, nach libcgi.a
umbenennen.
![]() ![]() |
pmake
erforderlich, jedoch funktioniert
die aktuelle Version auch mit GNU make.
Es kann sein, dass hier noch einige Abhängigkeiten fehlen. In dem Fall: Bitte melden.
![]() ![]() |
Den Sourcecode holt man sich am besten aus dem CVS, zumal die Version 1.1 inzwischen
schon wieder etwas veraltet ist. Die Version 1.1 gibt's unter
http://cforum.teamone.de/download/cforum-1.1.tgz.
Achtung: Obwohl die Version 1.1 des SELFForums schon mit autoconf
ausgeliefert wird, funktioniert sie nicht mit Linux, da einige Anpassungen noch fehlen. Der
aktuelle CVS-Code oder eine eventuell später erscheinende Version 1.2 wird dringendst
empfohlen.
![]() ![]() |
Als CVSROOT muss man :pserver:anonymous@cvs.teamone.de:/home/users/cvs
angeben. Passwort ist leer und das Projekt heißt selfforum
.
christian@midnight:~ $ export CVSROOT=:pserver:anonymous@cvs.teamone.de:/home/users/cvs christian@midnight:~ $ cvs login |
Daraufhin ist das Projekt ausgecheckt.
![]() ![]() |
Früher war ein Linux-Patch notwendig, um das SELFForum unter Linux zum Laufen zu bringen. Dies ist jetzt
nicht mehr der Fall, da die neue Version des Forums mit autoconf
arbeitet.
Das Forum selbst verwendet eigene dynamische Bibliotheken. Damit diese auch gefunden
werden können, muss der Zielort dieser dynamischen Bibliotheken schon jetzt bekannt sein.
Daher sollte man sich ein Verzeichnis anlegen, wo die dynamischen Bibliotheken reinkommen
sollen. Es wird ausdrücklich nicht empfohlen /usr/local/lib
zu verwenden. Als Beispiel wird hier /var/web/cforum/dev/cgi-shared/lib
verwendet.
Das autoconf
-Script muss jetzt die Systemkonfiguration prüfen und die
Makefile
erstellen:
christian@midnight:~/selfforum $ ./configure --libdir=/var/web/cforum/dev/cgi-shared/lib/ |
Wenn es Fehler während der Ausführung gibt, dann sind bestimmte Anhängigkeiten nicht erfüllt.
![]() ![]() |
Beim Kompilieren werden die Bibliotheken automatisch in das richtige Zielverzeichnis
gelinkt, daher muss der Benutzer, der das ausführt, Schreibrechte auf das Verzeichnis,
das man als libdir
angegeben hat, besitzen. Mit einem
christian@midnight:~/selfforum $ make |
wird das gesamte Projekt inklusive Bibliotheken kompiliert.
![]() ![]() |
![]() ![]() |
Als erstes muss man die Dateien fo_arcview
, fo_post
, fo_server
,
fo_userconf
und fo_view
in ein gültiges CGI-Verzeichnis (d.h.
in einem Verzeichins, das CGI-Ausführung erlaubt) kopieren. Alle fo_*
-Dateien müssen
für den Webserver ausführbar sein, die Datei base dagegen nicht. Im CGI-Verzeichnis legt
man jetzt noch ein Verzeichnis user
an und linkt alle fo_*
-Dateien vom
Elternverzeichnis auf dieses Kindverzeichnis. (ln -s ../fo_* .
)
Jetzt braucht man ein Verzeichnis, das die ganzen Konfigurationsdateien und Templates enthält.
Hier wird auch cgi-shared
dafür verwendet. Dies sollte außerhalb des
DocumentRoots und jeglichen Script-Verzeichnisses stehen. Dort kopiert man den kompletten Inhalt
vom cgi-shared
-Unterverzeichnis rein. (Ausnahme: Die CVS-Verzeichnisse) Alle Verzeichnisse
sollten mindestens die Rechtemaske 755
erhalten, alle normalen Dateien 644
und alle Dateien in folgenden Unterverzeichnissen auch wieder 755
: lib
(sofern man die Bibliotheken dorthin kopiert hat), modules
, config/ctemplates
.
Jetzt muss man noch dort, wohin man das Forum im DocumentRoot installiert
haben will eine .htaccess
-Datei anlegen, die folgenden Inhalt besitzt:
DirectoryIndex /cgi-bin/fo_view |
In das /my/
-Verzeichnis muss man auch eine .htaccess mit folgendem Inhalt stellen:
DirectoryIndex /cgi-bin/user/fo_view |
Anstelle von /cgi-bin
muss man das CGI-Verzeichnis nehmen,
worein man die fo_*
-Dateien kopiert hat. (Achtung: Diese Angabe ist vom Web-Stammbaum
aus gesehen)
Man braucht jetzt nur noch ein Verzeichnis, das die ganzen Nachrichten enthalten wird.
(Ich habe es fo_data
genannt) Dieses sollte auch außerhalb des Dokumentstammbaums
liegen. Dort erstellt man 2 Verzeichnisse, messages
und archive
. Diese
sollten beide unter dem Benutzer, unter dem man fo_server
auszuführen gedenkt,
beschreibbar sein, und sonst für alle lesbar. Dorthinein kommt eine Datei forum.xml
mit folgendem Inhalt:
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Forum SYSTEM "http://selfforum.teamone.de/forum.dtd"> <Forum lastMessage="0" lastThread="0"/> |
Damit hat man erst einmal alle Dateien, die man braucht, an die richtige Stelle kopiert.
![]() ![]() |
Meist muss das richtige Locale für die Datumsanzeige noch erstellt werden. (sonst wird kein Datum angezeigt) Unter Debian geht das wie folgt:
midnight:~# cd /usr/share/i18n midnight:/usr/share/i18n# localedef -f charmaps/ISO-8859-1 -i de_DE de_DE.ISO-8859-1 midnight:/usr/share/i18n# |
Das locale heißt jetzt de_DE.ISO-8859-1
.
![]() ![]() |
Als allererstes muss in den Verzeichnissen cgi-bin
und cgi-bin/user
noch
eine Datei base erzeugt werden, die nichts anderes als den relativen Pfad auf das
cgi-shared/config
-Verzeichnis enthält.
Die Konfiguration des Projekts wird im cgi-shared/config
-Verzeichnis durchgeführt.
Hier wird jede einzelne Konfigurationsdatei durchgegangen:
Wenn Pfade für Templatedateien anzugeben sind, dann muss anstelle der html4
oder xhtml10
Unterverzeichnisse %s%s
angegeben werden.
Hinweis: Alle Pfade, die hier angegeben werden müssen, sind absolut. Wenn hier als Beisielpfad ein relativer Pfad angegeben wird, dann liegt das nur daran, dass dieser auf jeder Installation so unterschiedlich sein kann, dass es unmöglich ist, ihn vorherzusagen.
![]() ![]() |
Diese Datei enthält die generelle Konfiguration. Hier eine Liste der Konfigurationeinstellungen:
html4
und xhtml10
.
fo_data/messages
-Unterverzeichnis
zeigen.
fo_data/archive
-Unterverzeichnis
zeigen.
my/
cgi-shared/config/ctemplates/%s%s/errortpl.so
zeigen.
cgi-shared/config/errormessages.txt
zeigen.
fo_post
, gesehen vom Web-Stammbaum. (z.B.
/cgi-bin/fo_post
)
fo_post
im User-Spezifischen Modus. (z.B.
/cgi-bin/user/fo_post
)/cgi-bin/user/fo_userconf
)
/cgi-bin/fo_userconf
)
fo_server
.
fo_server
.
de_DE.ISO-8859-1
.
Diese Sektion enthält alle Kategorien des Forums.
fo_userconf
muss Schreibzugriff auf das Verzeichnis haben!
![]() ![]() |
Diese Konfigurationsdatei enthält alle Infos für den Archiv-Betrachter. Die Sektion Filters enthält alle Plugins, die geladen werden sollen. Da sind eigentlich nur die Pfade anzupassen. Die Sektion General enthält das Datumsformat, das zur Anzeige benutzt wird (wird an strftime weitergegeben) und die Sektion Templates enthält die Templates, die benutzt werden sollen. (Hier also auch Pfade anpassen)
Nachdem der Archivbetrachter noch nicht ausgereift ist, kann diese Konfigurationsdatei im Moment vernachlässigt werden.
![]() ![]() |
Diese Konfigurationsdatei enthält alle Optionen für das Script fo_post
.
[msg:
und vor ]
, als zweiten die URL zum Bild und als Dritten den alternativen Text.
Hier werden wieder die Templates angegeben, also müssen wieder die Pfade angepasst werden.
![]() ![]() |
Hiermit wird das Registrations und Einstellungsscript konfiguriert.
cgi-shared/config/modconf/modules.xml
) Der Pfad sollte
jedoch absolut sein.
Die Pfade zu den Templates, die verwendet werden. Also wieder Pfade anpassen.
![]() ![]() |
Diese Datei konfiguriert die Anzeige des Forums.
Welche Filter sollen verwendet werden? (Pfade anpassen)
partial
= nur Antworten,
full
= alles, none
= gar nicht)
normal
möglich.)
Die Pfade zu den Templates, die nur darauf warten, angepasst zu werden...
![]() ![]() |
Jetzt muss nur noch die Benutzerauthentifizerung eingerichtet werden. Das macht man am besten
über .htaccess
. Wenn man eine MySQL-Datenbank verwendet, dann kann man
mod_auth_mysql
verwenden, ansonsten ein entsprechend anderes Modul. Zu beachten
ist, dass die MySQL-Authentifizerungsdaten und die Direktive zum Laden des Moduls auf jeden Fall
in die httpd.conf
reinmüssen. Die Daten für das Modul müssen mit denen,
die in der fo_userconf.conf
angegeben wurden, übereinstimmen.
AuthName "SELFHTML Forum" AuthType basic Auth_MySQL_DB forum_users Auth_MySQL_Password_Table auth Auth_MySQL_Group_Table groups Auth_MySQL_Username_Field username Auth_MySQL_Password_Field passwd Auth_MySQL_Group_Field grp Auth_MySQL_Empty_Passwords off Auth_MySQL_Encryption_Types Plaintext Auth_MySQL_Encrypted_Passwords off Auth_MySQL_Scrambled_Passwords off Auth_MySQL_Authoritative off Auth_MySQL_Non_Persistent off Auth_MYSQL On require valid-user |
Diese .htaccess
muss zweimal vorhanden sein: Einmal im cgi-bin/user
-Verzeichnis
und ein anderes Mal im benutzerspezifischen /my/
-Verzeichnis. Welche Struktur die Tabellen
haben müssen und welche Direktiven es gibt, kann man in der Dokumentation von mod_auth_mysql
nachlesen.
![]() |
![]() ![]() |
© 2000/2001 selfhtml@teamone.de / version 1.0 by
Christian Kruse / this document by
Christian Seiler