Copyright © 2001, 2002 PHPOpenChat-Team
Dieses Dokument unterliegt der PHPOpenChat-Lizens.
10.01.2002
Abstract
Dieses Dokument wendet sich an Webmaster und Designer, die die Einrichtung, Anpassung bzw. Konfiguration einer Community auf Basis des PHPOpenChat durchführen. Es beschreibt detailiert den Installationsvorgang und die Möglichkeiten der Anpassung von Templates an vorhandene Corporate Designs.
Table of Contents
Der PHPOpenChat ermöglicht synchrone Echtzeitkommunikation zwischen zwei oder mehreren Benutzern. Diese Diskussionen können sich auf mehere Benutzergruppen in verschieneden Räumen (Channels) aufteilen. Dabei hat jeder der Benutzer defaultmäßig einen eigenen privaten Raum, in denen er mit von ihm selbst eingeladenen Benutzern geschlossen diskutieren.
Table of Contents
Für die Echtzeitkommunikation über den PHPOpenChat ist es nicht nötig, eine ständige Verbindung zwischen Client und Server offen zu halten. Neue Daten werden per dynamischen Polling (abhängig von den Benutzerzahlen) an die Clients übermittelt.
Das System benötigt neben dem http-Port 80 keine weiteren Ports, um von außen angesprochen zu werden.
Copyright © 2001 PHPOpenChat-Team, http://www.ortelius.de/phpopenchat/, http://sourceforge.net/projects/phpopenchat/
Table of Contents
In diesem Kapitel werden die einzelnen Schritte beschrieben, die zur Installation des PHPOpenChat durchgeführt werden müssen.
Für den Betrieb des PHPOpenChat werden folgende Softwarekomponenten benötigt:
Webserver
PHP-Modul für den gewählten Webserver
MySQL-Datenbanksystem
PHPOpenChat-Distribution
Der PHPOpenChat ist in PHP geschrieben. Bitte installiere daher ein PHP-Modul für den gewählten Webserver.
Entpacke die PHPOpenChat-Distribution, die in Form einer ZIP- oder einem gezipten TAR-Datei vorliegt, in ein beliebiges Verzeichnis (im folgenden als "[PHPOpenChat_Dir]" bezeichnet), so dass die folgende Verzeichnisstruktur relativ zu diesem Verzeichnis entsteht:
Table 2.1. PHPOpenChat-Verzeichnisstruktur
| ./ | Basisverzeichnis des PHPOpenChat; enthält die PHPOpenChat-Lizens, das Datenbankschema, eine weitere Installationsanleitung, die ChangeLog-Datei (chronologische Liste aller Codeänderungen mit Beschreibung) |
| dist/ | Dieses Verzeichnis enthält alle Progamme oder Dateien, die wir zusammen mit dem PHPOpenChat verteilen. |
| doc/ | Basisverzeichnis für Dokumentationen |
| doc/de/ | Basisverzeichnis für die deutschsprachige Dokumentation |
| doc/en/ | Basisverzeichnis für die englischsprachige Dokumentation |
| html/ | Basisverzeichnis des Chats |
| html/admin/ | Basisverzeichnis der webbasierten Chatadministration |
| html/chatmail/ | Basisverzeichnis des Moduls "Chat-Mail" |
| html/forum/ | Basisverzeichnis des Moduls "Black Board" |
| html/images/ | Verzeichnis der zum PHPOpenChat gehörenden Grafiken |
| html/images/chatter | Verzeichnis für die hochgeladenen chattereigenen Grafiken. Auf dieses Verzeichnis benötigt der Webserver Schreiberechte! |
| html/images/smileys/ | Verzeichnis für die Standardgrafiken der Community |
| includes/ |
Basisverzeichnis für
|
Im folgenden wird die Installation von MySQL beschrieben. Dabei wird ein zum Betrieb notwendiger Datenbankzugang erzeugt und die initialen Daten importiert.
Entpacke die MySQL-Distribution in ein beliebiges Verzeichnis
Starte setup.exe, um die MySQL-Datenbank zu installieren und wähle dabei z.B. das Programmverzeichnis c:\mysql
Starte MySQL aus einer Command-Shell heraus durch folgende Befehle:
cd c:\mysql\bin
mysqld-shareware --standalone
Öffne eine zweite Command-Shell und gib ein:
cd c:\mysql\bin
mysql -u root mysql
Gib folgende SQL-Kommandos ein, um den Zugang zur Datenbank anzulegen.
INSERT INTO user VALUES('localhost','phpopenchat',PASSWORD('<your password>'),
'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
FLUSH PRIVILEGES;
Verlasse die MySQL-Kommandoebene durch die Eingabe von exit
Erzeuge mit dem folgenden Befehl eine Datenbank für den PHPOpenChat!
mysqladmin -u root create phpopenchat
Bei der Installation der MySQL-Distribution gehen wir von der Installation mittels des RedHat-Package Managers (rpm) aus. Das Installationsverzeichnis ist distributionabhängig.
Starte rpm -i mysql-xx.xx.xx.rpm und rpm -i mysql-clients-xx.xx.xx.rpm, um die MySQL-Datenbank zu installieren.
Starte MySQL aus einer Shell heraus durch folgende Befehle:
cd /etc/init.d
./mysqld start
Gib anschließend in dieser Shell folgendes ein:
mysql -u root mysql
Gib folgende SQL-Kommandos ein, um den Zugang zur Datenbank anzulegen.
INSERT INTO user VALUES('localhost','phpopenchat',PASSWORD('<your password>'),
'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
FLUSH PRIVILEGES;
Verlasse die MySQL-Kommandoebene durch die Eingabe von exit
Erzeuge mit dem folgenden Befehl eine Datenbank für den PHPOpenChat!
mysqladmin -u root create phpopenchat
Für die Community muss im Datenbankmanagementsystem (MySQL) eine Datenbank eingerichtet werden (siehe Installation der MySQL-Datenbank). Nachdem die Datenbankeingerichtet ist, müssen noch die PHPOpenChat-spezifischen Daten sowie das Datenbankschema importiert werden. Dies wird sowohl unter Windows als auch unter Linux wie folgt erreicht:
Windows
Öffne eine Command-Shell und gib ein:
cd c:\mysql\bin
mysql -u phpopenchat -p[Dein passwort] phpopenchat < [PHPOpenChat_Dir]/db.schema
Linux
Öffne eine Command-Shell und gib ein:
mysql -u phpopenchat -p[Dein passwort] phpopenchat < [PHPOpenChat_Dir]/db.schema
Bevor Du mit dem Ausprobieren der Community anfangen kannst, sind noch die folgenden Konfigurationsdateien anzupassen.
apache/conf/httpd.conf
Aktiviere die PHP-Unterstützung:
für Windows:
ScriptAlias /php/ "C:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
für Linux:
AddType application/x-httpd-php .php .php3
Optional kann sollte auch noch der DirectoryIndex um index.php erweitert werden.
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
Damit der PHPOpenChat die außerhalb der DocumentRoot liegenden Include-Dateien finden kann, muss in der Datei php.ini der include_path wie folgt erweitert werden:
php.ini
Windows
Bitte führe folgende Kommandos in einer Command-Shell aus. Wir gehen von einem Windows-Systemverzeichnis c:\windows aus. Unter anderen Windowsversionen kann das Windows-Systemverzeichnis andere Namen, wie bspw. c:\winnt für die Windowsversion "NT" besitzen.
cd c:\windows
edit php.ini
Innerhalb der Datei ist die Variable include_path wie folgt zu ergänzen:
include_path = ".;c:\php\includes;[PHPOpenChat_Dir]\includes"
Linux
Bitte führe folgende Kommandos in einer Command-Shell aus. Der Ort, an dem die PHP-Konfigurationsdatei zu finden ist, differiert zwischen den einzelnen Distributionen. Meist ist sie aber im Verzeichnis /etc zu finden. Bei einer Standardinstallation findet man die Datei unter /usr/local/lib. Im folgenden Beispiel gehen wir von einer Standardinstallation aus.
cd /usr/local/lib
vi php.ini
Innerhalb der Datei ist die Variable include_path wie folgt zu ergänzen:
include_path = ".:[PHPOpenChat_Dir]/includes"
Table of Contents
Die Datei defaults_inc.php ist die zentrale Konfigurationsdatei des PHPOpenChat. In ihr werden alle Änderungen zu jedem der verfügbaren Module vorgenommen.
Sprachauswahl : Alle verfügbaren Sprachen sind in Form von PHP-Includestatements aufgelistet. Zum Aktivieren einer bestimmten Sprache müssen lediglich die führenden Kommentarzeichen ('//') entfernt werden. Defaultmäßig ist die Sprache English aktiviert.
$CHATNAME : Name der Community
$MAX_NICK_LENGTH : Anzahl der maximal für einen Nicknamen benutzbaren Zeichen. Sollte die Zahl verändert werden, muß auch das Datenbankschema beachtet werden.
$FILE_EXTENSION : benutzte Dateiendung. Wird dieser Wert geändert, müssen alle Dateien so umbenannt werden, das sie diese Dateiändung tragen.
$INSTALL_DIR : Installationsverzeichnis des PHPOpenChat relativ zur Webserver "DocumentRoot". Soll die Community in der DocumentRoot laufen, bleibt diese Variable leer. Für ein angenommenes Installationsverzeichnis des PHPOpenChat unter "phpopenchat/" muß die Variable wie folgt gesetzt werden: $INSTALL_DIR = "/phpopenchat";
$CHATSERVERNAME : Der DNS-Name oder die IP des Communityservers wird hier definiert werden.
$BACKGROUNDIMAGE : Definition der Hintergrundgrafik des Eingabefensters.
$DATABASENAME : Name der Datenbank innerhalb des Datenbankmanagementsystems (MySQL) auf der die Communityinstallation basiert.
$DATABASEHOST : DNS-Name oder IP des Servers, auf dem MySQL installiert ist.
$DATABASEUSER : Benutzername mittels dem die Community auf die Datenbank zugreift.
$DATABASEPASSWD : Das Passwort des spezifizierten MySQL-Benutzers im Klartext.
$CONNECT_TRIES : Anzahl der MySQL-Verbindungsversuche.
$ENTRYCHANNELNAME : Name des ersten Channels im Chat. Wird hier der Wert geändert, muß in der Datenbank ein gleichnamiger Channel angelegt werden. Das Admin-Tool bietet die Möglichkeit auf leichte Art und Weise dies zu tun.
$MAX_LINE_LENGTH : Maximallänge einer im Chat geschriebenen Zeile. Alle darüberhinaus eingegebenen Zeilen werden verworfen.
$ROW_BUFFER_SIZE : Größe des für jeden Channel zur Verfügung stehenden Ringpuffers. Diese Größe kann beliebig verändert werden, wobei zusätzlich bei der Datenbanktabelle "Channels" Felder hinzugefügt werden müssen. Format dieser Felder: "Zeile_" (Prefix) plus eine laufende Nummer. Da der Defaultwert für die Größe des Ringpuffers "40" ist, existieren die Felder "Zeile_0" bis "Zeile_39" schon in der Datenbank.
$MODERATOR_RATE : Zeitintervall in Sekunden in dem automatische Nachrichten im Chat ausgegeben werden.
$LAST_TIME_ONLINE : Zeitspanne die ein Community-Mitglied maximal abwesend sein darf, bevor seine Registration gelöscht wird.
$ADDITIONAL_LETTERS : Buchstaben oder Sonderzeichen, die zusätzlich zur Benutzung in einem Nicknamen erlaubt sind.
$ENABLE_SESSION : Schaltet die Verwendung von Sessions und damit die sicherste Arbeitsweise der Community ein (true) oder aus (false).
$USERIMG_MAX_BYTES : Beschränkt die maximale Größe eines Benutzer-Icons auf die angegebene Größe in Bytes ein. Dieser Wert spielt beim Upload des Benutzer-Icons innerhalb des Profils eine Rolle.
$USERIMG_IMGSIZE_X : Beschränkt die Größe des Benutzer-Icons auf die angegebene Anzahl Pixel in der X-Achse.
$USERIMG_IMGSIZE_Y : Beschränkt die Größe des Benutzer-Icons auf die angegebene Anzahl Pixel in der Y-Achse.
$SESSION_NAME : Name der Session.
$VERSION_NUMBER : PHPOpenChat-Versionsnummer
$ADMIN_DIR : Pfad ab der DocumentRoot des Webservers hin zum Administrationsinterface.
$NO_NO_WORDS : Im Chat nicht erlaubte Wörter. Falls sie engegeben werden, werden sie durch ein "Ooops" ersetzt.
$NICK_NOT_ALLOWED : Reservierte und nicht erlaubte Nicknamen.
$UNACCEPTABLE_CONTENT : Wenn über URLs inerhalb des Chat-Moduls auf Webseiten verwiesen wird, dürfen diese keines der hier angegebenen Wörter enthalten. Ansonsten wird nicht zur angegebenen URL weitergeleitet.
$pass_phrase : Dieser Satz oder Wortgruppe wird zur Ermittlung der Prüfsummen verwand. Es ist sehr wichtig, den Inhalt dieser Variablen sofort nach der Installation zu ändern!
$FORUMDATE : Zeitspanne in Tagen, aus der Forenbeiträge angezeigt werden.
$KICK_COUNT : Störer können auch durch eine Gruppe von Benutzern, die diesen Benutzer ignorieren, rausgeworfen werden. Ist die Gruppe groß genug, wird ein Störer automatisch ausgeschlossen. Mit dieser Variablen bestimmt man die Größe dieser Gruppe.
$SPERRPASSWORT : Wurde ein Benutzer rausgeworfen, bleibt seine Registration erhalten, lediglich das Passwort wird geändert, so dass ein nochmaliges Einloggen unmöglich ist. Hier wird dieses Passwort ermittelt.
$MAIL_TEXT_COLOR : Farbe des Mailtextes im Chatmail-Modul.
$MODERATOR_COLOR : Nicknamenfarbe innerhalb moderierter Channels des Moderators.
$COMODERATOR_COLOR : Nicknamenfarbe innerhalb moderierter Channels des Co-Moderators.
$VIP_COLOR : Nicknamenfarbe innerhalb moderierter Channels des VIPs bzw. des Spezialgastes.
$PATEN_COLOR : Nicknamenfarbe eines Paten/Operators der Community.
$CHAT_TEXT_SIZE : Größe in Pixeln des Textes innerhalb des Chat-Moduls.
$PRIVAT_ICON_PATH : Pfad zu den Privat-Icons der Benutzer relativ zur Webserver-DocumentRoot.
$ICON_PATH : Pfad zu den Chat-Icons relativ zur Webserver-DocumentRoot.
$BG_IMAGE : Hintergrundgrafik im Eingabe-Frame des Chat-Moduls.
$LOGO : Logo im Eingabe-Frame des Chat-Moduls.
$TEAM_MAIL_ADDR : Mailadresse des Community-Teams. Diese wird an einigen Stellen zur Hilfe der Benutzer ausgegeben.
$LOOK_IN_COLOR : Voreingestellte Textfarbe für jeden neuen Benutzers, der noch keine eigene Farbe auswählen konnte.
$DEFAULT_TEXT_COLOR : Hintergrundfarbe der Adminoberfläche.
$DEFAULT_BG_COLOR : Zeit an der eine Zeile im Chatmodul geschrieben wurde anzeigen.
$SHOW_TIME : IRC-Kommandos im Chatmodul erlauben.
$IRC_COMMANDS : Das Wechseln in verschiedene Channels/Räume erlauben.
$SELECT_CHANNEL : Direktes Ansprechen von Benutzern erlauben.
$SELECT_USER : Wahl verschiedener Scrollgeschwindigkeiten erlauben.
$CHANGE_SCROLLING : Filtermöglichkeit von Statusmeldungen im Chatmodul erlauben.
$SET_STATUSFILTER : Filtermöglichkeit nicht eigener Kommunikation im Chatmodul erlauben.
$SET_TWADDLEFILTER : Hilfeknopf anzeigen.
$BUTTON_HELP : Zugang zum Modul Blackboard erlauben.
$BUTTON_FORUM : Zugang zum Modul Chat-Mail erlauben.
$BUTTON_MESSAGES : Ignorieren von Benutzern und Einladen von Benutzern in private Räume erlauben.
$BUTTON_IGNORE : Wechsel der eigenen Textfarbe erlauben.
$CHANGE_COLOR_LINK : Flüßstern zu anderen Benutzern erlauben.
$WISPERING : Erstellen von Freundeslisten erlauben.
$BUTTON_NOTIFY : Zugang zum Dialog "Wer ist online" erlauben.
Das Administrationsinterface ist, soweit nicht anders in der Konfigurationsdatei angeben, unter Webserver-DocumentRoot/$INSTALL_DIR/admin (siehe auch the section called “Die Konfigurationsdatei”) zu finden.
Für die Benutzerverwaltung stehen drei Menüpunkte zur Verfügung:
Paten oder auch Operatoren genannte Benutzer, haben besondere Rechte innerhalb der Community. Sie sind ab der Version 2.2.2 in der Lage, über ein spezielles Interface Benutzer zu sperren.

Mit einem Klick auf (1) gelangt man zur Verwaltung der Paten/Operatoren. Unter (2) ist es dann möglich zu der Liste der Paten bzw. Operatoren beliebig viele Benutzer hinzuzufügen. Dabei ist auf Existenz der zu addierenden Benutzer zu achten.
Moderatoren geben einzelne Textzeilen von Benutzern frei, so dass sie durch alle Benutzer lesbar sind. VIPs können ausschließlich Zeilen lesen, die durch einen Moderator freigegeben wurden. Zeilen, die ein Moderator oder ein VIP selbst schreibt, werden sofort angezeigt.
Definiert werden die Moderatoren und VIPs immer paarweise.

Unter (1) gelangt man zur Administration der Moderatoren und VIPs. Ein Eintrag besteht dabei aus drei Feldern:
Co-Moderatoren können innerhalb als moderiert gekennzeichneter Channels alle Zeilen lesen.

>Mit einem Klick auf (1) gelangt man zur Verwaltung der Co-Moderatoren. Unter (2) ist es dann möglich zu der Liste der Co-Moderatoren beliebig viele Benutzer hinzuzufügen. Dabei ist auf Existenz der zu addierenden Benutzer zu achten.
Unter dem Menüpunkt "Administration der Channels" (1) ist das Konfigurationsinterface zu erreichen.

Unter (2) kann eine beliebig große Anzahl an Channels der Community hinzugefügt werden. Das Neuanlegen bzw. das Editieren existierender Channels (3) unterscheidet sich bzgl. der Vorgehensweise nicht. Deswegen wird hier ledliglich auf das Editieren der Channels eingegangen.

PHPOpenChat HomePage
http://www.ortelius.de/phpopenchat/, http://sourceforge.net/projects/phpopenchat/
Websites, wo der PHPOpenChat erfolgreich eingesetzt wird.