Wiki mit PHP einrichtenContent-Schleuder
Eigenes Wiki
Wiki mit PHP einrichten
Mittlerweile gibt es eine ganze Reihe von PHP-Anwendungen, die es erlauben, ein eigenes Wiki zu starten. Ein Wiki ist eine Website, die von den Besuchern mitgestaltet wird. Jeder darf Artikel und Seiten hinzufügen und editieren und trägt so zur Erweiterung und Verfeinerung der Informationen bei. In dieser Hinsicht ähnelt es einem Content-Management-System, nur dass es viel offener gestaltet ist.
Im Workshop kommt das Erfurtwiki, auch kurz: Ewiki (freshmeat.net/projects/ewiki) zum Einsatz, da es gegenüber anderen Skripts einige Vorteile bietet. Dazu zählt die Unterstützung der deutschen Sprache. Das Erfurtwiki kann auch ohne eine MySQL-Datenbank betrieben werden. Ein Web-Installationsservice erleichtert das Setup für unerfahrene Benutzer.
Da es sich beim Ewiki eher um eine Bibliothek als um ein komplettes Skript handelt, sind die Inhalte nicht an ein festes Layout gebunden. Die erzeugten Seiten können so leicht als Inhalte in bestehende Websites integriert werden. Über 200 Plug-ins wurden für das Ewiki geschrieben, die die Applikation bei Bedarf um zahlreiche Funktionen erweitern.
Eine Demo finden Sie unter demo.opensourcecms.com/ewiki. Sie dürfen hier alles editieren, Beiträge hinzufügen und löschen und sich im Admin-Bereich umsehen. Die Demo-Installation wird alle zwei Stunden wieder zurückgesetzt.
Zwei-Wege-Installation
Wiki mit PHP einrichten
Für die Installation stehen zwei Möglichkeiten zur Verfügung: Sie können das Programmpaket per FTP hochladen und dort den Setup-Assistenten ausführen, oder Sie sparen sich die Arbeit und nutzen den Remote-Installer, der Ihnen den Upload und die Grundkonfiguration abnimmt.
Das Online-Tool finden Sie unter ewiki.berlios.de/installer. Hier geben Sie nur die Zugangsdaten Ihres FTP-Servers und das Datenbank-Login an, wählen aus elf verschiedenen Templates das gewünschte aus, und das Skript erledigt den korrekten Upload auf Ihren Webspace.
Da mit dem Web-Installer nicht alle Optionen und auch nicht die Installation der Plug-ins verfügbar sind, gehen Sie im Workshop den klassischen Weg. Laden Sie die gepackten Programmdateien von der Projekt-Website herunter und entpacken Sie sie. Drei Dateien müssen vor dem Upload kurzzeitig in TXT-Dateien umbenannt werden, damit sie übertragen werden können: .htaccess und .nwaccess im Hauptverzeichnis Ihres Wikis und .htaccess im Unterverzeichnis plugins.
Wiki konfigurieren
Wiki mit PHP einrichten
Der Aufruf der Datei setup.php im Hauptverzeichnis Ihres Wikis startet einen Setup-Wizard. Dieser ist sehr umfangreich und entscheidend für die Funktionen, die in Ihrem Wiki später zur Verfügung stehen. Aktivieren Sie einfach die Checkboxen mit den Funktionen, die Sie integrieren möchten. Zunächst vergeben Sie einen Namen für Ihr Wiki und spendieren den Seitentiteln deutsche Namen, wenn es sich um ein deutschsprachiges Wiki handelt. Im Bereich link generation sollte bei SCRIPT der Eintrag ?page= lauten. SCRIPT_URL ist der Pfad zum Hauptverzeichnis Ihrer Wiki-Installation, also in der Art www.ihredomain.de/ewiki. Weiter geht es mit den Datenbank-Zugangsdaten Ihres Webspaces. Zur Auswahl stehen MySQL, PostgreSQL und auch ein einfaches Flat File.
Plug-ins einrichten
Wiki mit PHP einrichten
Eine ganze Menge an Plug-ins werden bereits mitgeliefert, die beim Setup gleich aktiviert werden können. Darunter ist ein E-Mail-Adress-Schutz, der E-Mail-Adressen für Spambots unlesbar verschlüsselt, und ein Plug-in-Installationsprogramm namens Click and Run, das ein sehr einfaches Nachrüsten des Wikis mit Plug-ins per Mausklick möglich macht. Weitere umfangreiche Module statten das Erfurtwiki mit einer Kalenderfunktion, einer Tour durch die Seiten, Blogging sowie Up- und Downloads von Dateien aus.
Neben den größeren Erweiterungen stehen auch viele kleine, aber feine Plug-ins zur Auswahl. Für die einzelnen Seiten des Wikis bieten die Page Plug-ins Zusatzfunktionen wie eine erweitere Suche, Zufallsartikel, einen Seitenzähler, eine Bildergalerie und ein Text-Upload-Tool, das den unkomplizierten Import von Content aus verschiedenen Formaten erlaubt. Action-Plug-ins lassen sich für jede Seite einzeln aktivieren und erweitern dann die Funktionen für den Besucher der Seite, beispielsweise um die Anzeige ähnlicher Seiten, die Möglichkeit, die Seite einem Freund zu mailen, oder eine automatische Übersetzung mit Hilfe von Babelfish oder Googlefish. Sind verschiedene Sprachversionen vorhanden, gibt die Option Language Negotiation automatisch die korrekte Fassung für den jeweiligen Benutzer aus.
Haben Sie alle gewünschten Optionen aktiviert und sind Sie am Ende der Einstellungen angekommen, erzeugen Sie eine Datei namens config.php über den Button save config.php. Diese Datei laden Sie auf Ihren Webspace ins Ewiki-Hauptverzeichnis und überschreiben die dort vorhandene Datei. Sie erhalten am Ende des Setup-Wizards auch die Möglichkeit, eine <i<ewiki.ini-Datei anzulegen. Dies sollten Sie auf jeden Fall tun, denn mit dieser Datei können Sie ganz einfach wieder in den Setup-Wizard zurückkehren, die INI-Datei mit Ihrer Konfiguration laden und Ihre Einstellungen und installierten Plug-ins und Module anpassen, um anschließend eine neue config.php zu erzeugen.
Anpassungsfähig
Wiki mit PHP einrichten
Wer den Setup-Wizard beendet hat, hat bereits eine gute Vorstellung davon, wie umfangreich die Wiki-Anwendung ist. Vor allem die Anpassungsfähigkeit macht das Erfurtwiki zu einem echten Highlight. Kaum eine Funktion ist in Stein gemeißelt, der Administrator darf nicht nur zahlreiche Funktionen ein- und ausschalten, sondern kann auch weitere über Plug-ins und Module nachrüsten. Die Darstellung des Wikis bleibt ebenfalls Ihnen überlassen. Mit eigenen Templates und Stylesheets schaffen Sie ein individuelles Wiki.
Nun wenden Sie sich der Administration der frisch installierten PHP-Anwendung zu. Ein mitgeliefertes Beispiel-Template dient als Basis dafür. Starten Sie das Wiki darin über www.ihredomain.de/ewiki/example-1.php. Dabei ist das Verzeichnis ewiki das Hauptverzeichnis der Anwendung und kann von Ihnen anders benannt worden sein. Weitere Templates sind im Verzeichnis examples hinterlegt.
Das neu geborene Wiki fordert Sie im zentralen Bereich der Seite auf, eben diese Startseite zu editieren. Dies können Sie nun tun. Den neuen Beitrag dürfen Sie natürlich jederzeit wieder bearbeiten, denn genau das ist ja das Prinzip eines Wikis. In der linken Navigation unter dem Punkt useful tools finden Sie das Menü database/admin. Hier stehen Ihnen Funktionen zum Sichern der Datenbank, zur Kontrolle von Beiträgen, ein Filemanager und weitere Tools zur Seite, um Ihr Wiki zu verwalten. Die Admin-Tools erreichen Sie auch jederzeit über www.ihredomain.de/ewiki/tools.
Administrator anlegen
Wiki mit PHP einrichten
Wenn Sie nun in den Admin-Tools auf eines der Menüs klicken, erhalten Sie eine Fehlermeldung in der Art »Please first create an admin account ?«. Der Grund hierfür: Es ist in der Default-Konfiguration kein Administrator-Zugang vorhanden. Es wird auch keiner beim Setup angelegt. Dies ist kein Fehler, sondern wird von den Entwicklern als Sicherheitsmaßnahme betrachtet, da die Admin- und Database-Tools mächtige Werkzeuge für die Manipulation des Wikis bereitstellen. Die Readme-Datei ist bei der Suche nach einer Lösung wenig hilfreich. Um einen Administrator-Zugang anzulegen, müssen Sie in PHP selbst Hand anlegen. Leider können Sie dies im Ewiki nicht wie von anderen Anwendungen gewohnt beim Setup oder dem ersten Start der Anwendung bequem über die Programmoberfläche erledigen.
Die Datei tools/t_config.php lädt ein Skript, das den Login-Dialog ausgibt. Das Passwort wird dabei direkt in einer PHP-Datei abgelegt. Alternativ können Sie auch einen Zugang per .htaccess oder .htpasswd erzeugen.
Gehen Sie für die einfache PHP-Variante wie folgt vor. Suchen Sie im Ewiki-Verzeichnis unter /fragments/funcs/ die Datei auth.php. In dieser wird das Passwort hinterlegt. Öffnen Sie diese im Editor Ihrer Wahl, zum Beispiel in Dreamweaver, der den PHP-Code farbcodiert und übersichtlich darstellt. Dort ist bereits ein Passwort-Array vorhanden. Was hier noch fehlt, ist die Definition eines Passworts für den Admin. Notieren Sie die folgende define-Anweisung direkt vor die if-Schleife:
define ("EWIKI_ADMIN_PW", geheim123);
Damit legen Sie die Konstante EWIKI_ADMIN_PW fest, die im Beispiel den Wert geheim123 hat. Ersetzen Sie geheim123 durch Ihr gewünschtes Passwort für den Administrator. Vergessen Sie nicht, die Datei auth.php und am besten auch das Verzeichnis mit eingeschränkten Rechten vor neugierigen Blicken zu schützen.
Admin-Tools nutzen
Wiki mit PHP einrichten
Beim Aufruf der Admin-Tools über das Menü useful tools, database/admin im Beispiel-Template oder www.ihredomain.de/ewiki/tools und einen Klick auf eine Admin-Funktion werden Sie nun mit einem Login-Dialog empfangen. Geben Sie die Zugangsdaten ein, im Beispiel admin und geheim123. Mit page flags können Sie bestehende Seiten mit Rechten und Schranken ausstatten. Artikel können beispielsweise mit Nur-Lese-Rechten versehen oder HTML-Tags bei der Eingabe neuer Inhalte zugelassen werden. Das Tool backup archiviert alle Wiki-Seiten, um sie später über restore wieder herzustellen. Dafür stehen unterschiedliche Formate zur Verfügung, wie Flat Files und Meta-Files, die ähnlich XML aufgebaut sind. Auch ein Import-Export-Skript fehlt nicht.
Mit database conversion übernehmen Sie Seiten aus anderen Wikis oder stellen Ihre Ewiki-Pages in einem für diese verwendbaren Format bereit. Auch ein Link-Checker erweist sich als nützlich, der ganze Verzeichnisse überprüft und Broken Links für eine anschließende Korrektur markiert.
Ewiki in eigene Site einbinden
Wiki mit PHP einrichten
Um das Wiki in eine bestehende Site einzubinden, genügt ein kleines Skript, das die Verbindung zur Datenbank herstellt und die Bibliothek ewiki.php aufruft. Die nachfolgend definierte Seite meineseite.php ist die Site, die das Layout erzeugt. Für einen schnellen Test können Sie an dieser Stelle auch einfach auf die im Ewiki-Paket mitgelieferte example-1.php verweisen.
<?php
mysql_connect("localhost", "Datenbankbenutzername", "Datenbankpasswort");
mysql_query("use Datenbankname");
define("EWIKI_SCRIPT", "meineseite.php?page=");
include("ewiki.php");
?>
<?php
echo ewiki_page();
?>
Mit den ersten beiden Befehlen wird die Verbindung zur MySQL-Datenbank erledigt. Ersetzen Sie Datenbankbenutzername, Datenbankpasswort und Datenbankname mit Ihren Zugangsdaten. Mit define() legen Sie fest, wie die Hyperlinks zu den Wiki-Seiten lauten sollen, damit ewiki.php auch für die nächste angeklickte Ewiki-Page aufgerufen wird. Über include(?ewiki.php?) wird die Ewiki-Bibliothek geladen. Der Aufruf von echo ewiki_page(); gibt die vom Browser angeforderte Seite aus.
Jetzt steht Ihnen eine einfache Seite mit den Ewiki-Funktionen zur Verfügung. Wenn Sie im head-Bereich der Seite noch Ihr Stylesheet laden, sieht das Ganze schon recht ansehnlich aus:
Im Beispiel wird auf das mitgelieferte example-1.css verwiesen.
Fazit
Wiki mit PHP einrichten
Das Erfurtwiki ist eine umfangreiche Anwendung, die von hunderten Plug-ins aufgewertet und ständig weiterentwickelt wird. Die ersten Schritte zum eigenen Wiki werden von kleinen Stolpersteinen begleitet, die jedoch mit den Tipps aus diesem Workshop schnell umgangen werden können. Integrieren Sie das Skript in Ihre eigene Site oder greifen Sie auf eines der mitgelieferten Templates zurück. Das Ewiki ist hier sehr flexibel einsatzfähig. Eigenen Erweiterungen und Anpassungen steht nichts im Wege. Denkbar ist zum Beispiel eine geschlossene Benutzergruppe für Ihr Wiki, in der nur bestimmte Personen Seiten editieren dürfen, Dabei steht Ihnen der EWIKI_PROTECTED_MODE zur Seite. Informationen dazu gibt Ihnen eine Readme-Datei im Verzeichnis plugins/auth.
Alle Dateien zum Workshop finden Sie auf der Heft -CD und unter listings.internet-pro.de.