Geeklog Documentation

Geeklog installieren

Neue Installation Auf eine neue Version upgraden Typische Probleme

Glossar

Checkliste "Vor der Installation" (Neue Installation)

Bevor Geeklog das erste Mal installiert wird, stellen Sie sicher, dass Sie sich in den folgenden Punkten informiert haben und die benötigten Komponenten zur Verfügung stehen:

  1. ein Webserver, auf dem PHP 4.04 oder höher läuft,
  2. ein Webserver, auf dem MySQL läuft und der Zugriff auf eine Datenbank oder das Recht, eine Datenbank anzulegen,
  3. das Recht, eine neue Datenbank in MySQL anzulegen oder Zugriff auf eine existierende Datenbank,
  4. eine Telnet- oder SSH-Verbindung zu Ihrem Webserver (obwohl ein FTP-Zugriff auch ausreichen wird). Dieses Dokument geht davon aus, dass Sie einen Zugriff auf Kommanzeilenbasis auf Ihren Server haben, wird aber die wesentlichen Unterschiede für FTP-Benutzer erwähnen.
  5. die Möglichkeit, ein "tarball" zu entpacken (eine Datei, die mit "tar.gz" endet).
  6. Kenntnis der Unterschiede zwischen einem Pfad und einer URL.
  7. Kenntnis der Pfade und Ordnerstruktur Ihres Systems.

    Besonderer Hinweis über Parserfehler: Einige Benutzer haben uns berichtet, dass WinZip Dateien des Geeklog-Tarballs beschädigen kann, so dass es während der Installation Fehlern auftreten. In dieser Hinsicht empfehlen wir Ihnen dringend, auf die Benutzung von WinZip zu verzichten und stattdessen WinRAR benutzen, um die Dateien auf Ihrem lokalen Rechner zu entpacken. Noch besser allerdings entpacken Sie die Dateien auf Ihrem Server (was einen Telnet/SSH-Zugang erfordert).

    Parserfehler können ebenfalls durch die Benutzung von WYSIWYG-Editoren – z.B. Dreamweaver – für die Änderung der Datei "lib-common.php" hervorgerufen werden. Benutzen Sie also vorzugsweise einen Editor für "flache Texte".

Die folgenden Anweisungen beziehen sich in erster Linie auf das Verzeichnis public_html.

Eine Geeklog-Installation besteht im Grunde genommen aus zwei Teilen: Ein Teil, der für "die ganze Welt" sichtbar ist und aus den Dateien des Verzeichnisses public_html besteht. "public_html" ist ein typischer Name für ein Verzeichnis eines Webservers, auf das Jedermann zugreifen kann. "htdocs" ist ein weiterer typischer Name; auf anderen Systemen gibt es das Verzeichnis home, Sites (Max OSX) oder web (Red Hat). Wenn auf Ihrem Server ein derartiges Verzeichnis existiert, kopieren Sie alle Dateien aus dem Geeklog-Verzeichnis public_html in dieses Verzeichnis. Sie müssen dann nur noch die Variable $_CONF['path_html'] (in der Datei config.php) auf dieses Verzeichnis verweisen lassen.

Der andere Teil von Geeklog besteht aus allen Dateien außerhalb des public_html-Verzeichnisses und sollte nicht über eine URL ansprechbar sein, denn er enthält sensible Informationen. Also sollten Sie alle diese Dateien und Verzeichnisse außerhalb ihres Webverzeichnisses speichern (mit anderen Worten: außerhalb des public_html oder htdocs oder web-Verzeichnis). Die Variable $_CONF['path'] (die ebenfalls in der Datei "config.php" zu finden ist) muss dann nur noch auf dieses Verzeichnis, in dem alle Ihre Dateien und Verzeichnisse liegen, verweisen.

Diese Unterteilung der Installation stellt sicher, dass Sie Ihre Geeklog-Seite direkt mit einem Domainnamen wie http://www.ihredomaine.de/ ansprechen können und den Verzeichnissnamen "public_html" nicht in der URL erwähnen müssen.

Installationsanleitung (Neue Installation)

Lesen Sie diesen Absatz bitte vollständig, bevor Sie mit der Installation beginnen.

  1. Entpacken Sie das Tarball *innerhalb* Ihres Webbaums durch den Aufruf von
    tar -zxvf geeklog-1.3.11d.tar.gz
    in Ihrer Shell auf Ihrem Server (was – wie bereits erwähnt – einen SSH-Zugriff erfordert).
    Dateien als "Tarball" einpacken: Wenn Sie Dateien auf Ihrem lokalen Rechner geändert haben, und wieder als Tarball auf den Server laden wollen, verwenden Sie den Aufruf
    tar -vcpz -f geeklog-1.3.11d.tar.gz geeklog-1.3.11d
    FTP und Windowsbenutzer: Entpacken Sie die Tarball-Datei auf Ihrem lokalen Rechner und laden Sie die die resultierenden Dateien auf Ihren Server. Alle Dateien außer Bilddateien werden als ASCII hochgeladen.
  2. Bei Installationen auf *nix -Servern kann die folgende Anweisung erforderlich sein:
    chown -R webuser:webuser /path/to/geeklog
    Das sorgt dafür, dass alles innerhalb des Pfades Ihnen gehört. Typische Angaben sind www:www oder nobody:nobody und noch öfters spielt diese Angabe keine Rolle.
  3. Bei Installationen auf *nix -Servern wechseln Sie mit cd in das Verzeichnis /path/to/geeklog und geben folgende Anweisungen ein:
    chmod -R 775 logs/
    chmod -R 775 public_html/backend/
    chmod -R 775 public_html/images/articles
    chmod -R 775 public_html/images/userphotos

    FTP-Benutzer: Wenn Sie die chmod-Anweisung über einen FTP-Client ausführen, müssen Sie chmod sowohl für die Dateien innerhalb der Verzeichnisse logs/ und public_html/backend als auch für die Verzeichnisse selber ausführen. Die meisten, wenn nicht gar alle FTP-Clients führen die Anweisung nicht rekursiv aus. Im Klartext heißt das: Sie müssen die Rechte für jede einzelne Datei innerhalb der Verzeichnisse manuell setzen.

    Besonderer Hinweis: Die meisten Fehlermeldungen bei den ersten Gehversuchen mit Geeklog kommen zustande, wenn Schritt #3 nicht sauber ausgeführt wird. Nehmen Sie sich die Zeit und gehen Sie die Schritte sorgfältig durch.

    Zudem haben eine Reihe von Benutzern Probleme mit den Zugriffsrechten, wenn diese nicht auf 777 gesetzt werden. Versuchen Sie zuerst die "milderen" Rechte 775 und stellen Sie 777 erst dann ein, wenn Sie Fehlermeldungen erhalten.

    http://yourgeeklogsite/admin/install/check.php ist ein Script, mit dem Sie die Dateirechte prüfen können.

  4. Legen Sie die Datenbank für Geeklog an. Sie müssen nur die leere Datenbank anlegen, Wenn Sie sich mit MySQL nicht auskennt – das Installationsscript (siehe unten) wird die Tabellen für Sie erzeugen.
    Wenn Sie mit MySQL nicht vertraut sind, legen wir Ihnen phpMyAdmin ans Herz. Wenn Sie mit beiden Begriffen nichts anfangen können, setzen Sie sich mit den Systemadministrator in Verbindung.
  5. Öffnen Sie die Datei config.php und stellen Sie die entsprechenden Parameter für Ihren Server ein. Für die erste Installation heißt das in erster Linie: Setzen Sie Pfade. Alle anderen Variablen können Sie nach einer erfolgreichen Installation noch ändern. config.php enthält jede Menge Kommentare, um Ihnen zur Seite zu stehen.
    Windows Users, Ihr solltet in der Lage sein, in Euren Pfaden den Unixpfad '/' zu benutzen. Ansonsten braucht Ihr den doppelten Windowsslash '\\'.
    Lesen Sie die Kommentare in der Datei config.php sorgfältig.
  6. Öffnen Sie die Datei lib-common.php im Verzeichnis public_html und ändern Sie die require_once()-Anweisung am Anfang, so dass sie auf den Speicherort Ihrer config.php verweist.
  7. Jetzt aber! Öffnen Sie Ihren Browser und navigieren Sie auf die Seite http://yourgeeklogsite/admin/install/install.php. Dort folgen Sie den Anweisungen!
  8. Sobald die Erfolgsmeldung sehen, ist die Installation fertig und Sie können mit dem Einstellen von News, Atikeln und Links beginnen oder das Design anpassen. Vorher sollten Sie unbedingt das Verzeichnis admin/install löschen (und alle Dateien, die darin liegen).
  9. Lesen Sie den ersten Artikel auf Ihrer Geeklog-Site, um herauszufinden, wie man sich als Administrator einloggt. Denken Sie dabei auch daran, das Administrator-Passwort zu löschen, das für die erste Benutzung mitgeliefert wird.

Wenn Probleme auftreten oder Sie laufend Fehlermeldungen erhalten, sehen Sie sich bitte den Abschnitt Typische Installationsprobleme unten an.

Checkliste "Vor dem Upgrade" (upgrade)

Warnung: Wenn Sie Änderungen und Anpassungen vorgenommen haben, stellen Sie sicher, dass alle Dateien Ihrer augenblicklichen Geeklog-Installation gesichert sind, insbesondere die Datei lib-custom.php (in der all Ihr angepasster Code liegen sollte). Legen Sie ein Backup aller Themen, Bilder und statischen Seiten an.

Erstellen Sie ein Backup Ihrer Datenbank. Wir können gar nicht genug hervorheben, wie wichtig es ist, dass Datenbank und Dateien gesichert werden.

Sie wurden gewarnt.

UPGRADE-Anleitung

Im Grunde genommen funktioniert ein Upgrade nicht anders als eine Installation, außer dass bei einem Upgrade bereits eine Datenbank vorhanden ist und einer Auffrischung bedarf.

  1. Sichern Sie angepassten Code und Ihre Datenbank

    Besonderer Hinweis: Achten Sie besonders auf ältere config.php- und lib-common.php- Dateien. Diese Dateien enthalten die Informationen über die Datenbank und über die Pfade, die sie bei der letzten Installation von Geeklog eingegeben haben und müssen über die neuen config.php- und lib-common.php-Dateien kopiert werden.

  2. Sie können Ihr augenblickliches Geeklog-Verzeichnis entweder umbenennen oder löschen. Obwohl Sie das alte Verzeichnis letztendlich wahrscheinlich löschen werden, ist es sicherer, das alte Verzeichnis noch ein paar Tage zu verwahren – *nur so*, zur Sicherheit.
  3. Dekomprimieren Sie die neue Version und kopieren Sie die resultierenden Dateien in die exakten Pfade der alten Installation. Wenn Ihr altes Geeklogverzeichnis in /usr/home/www/geeklog/ lag, sollte auch die neue Installation in /usr/home/www/geeklog/ liegen.
  4. Genauso wie bei einer frischen Installation bearbeiten Sie Ihre config.php und lib-common.php. Im Grunde genommen kopieren Sie die Informationen Ihrer alten Kopie in diese Dateien.
  5. Wenn Sie von Geeklog 1.2 oder früher upgraden, wechseln Sie zu /path/to/geeklog/sql/updates und wenden alle benötigten Datenbank-Updates an. Wollen Sie Geeklog 1.1 upgraden, müssen Sie 1.1_to_1.2.sql und 1.2_to_1.2.2.sql aufrufen, die Ihre Datenbank auf den Stand der Geeklog-Version 1.2.5-1 bringen. Ich sage 1.2.5-1, da es keine Änderungen der Datenbank von Version 1.2.2 auf 1.2.5-1 gegeben hat (das bedeutet, dass die 1.2.2-Datenbank die gleiche ist wie die 1.2.5-1-Datenbank). Wenn Sie sich nicht an die MySQL-Befehlszeile gwöhnen wollen, können Sie genauso gut phpMyAdmin benutzen.

    Wenn Sie von einer Geeklog 1.3-Version oder jünger upgraden, können Sie diesen Schritt überspringen.
  6. Öffnen Sie Ihren Browser und navigieren Sie zu http://yourgeeklogsite/admin/install/install.php. Geben Sie Ihren Pfad zu Geeklog ein und stellen Sie sicher, dass Sie 'Upgrade Database' als Installationstyp wählen, bevor Sie auf den Button "Next" klicken. Der zweite Schritt der Installation sollte die Option bieten, Ihre Datenbank in die augenblickliche Version zu transformieren.
    Beachten Sie bitte, dass nur "Basisversionen" aufgeführt sind, da z.B. Geeklog 1.3.7 und 1.3.7sr2 die gleiche Datenbank benutzen. Wenn Sie also von Geeklog 1.3.7sr2 upgraden, wählen Sie einfach "1.3.7" (das trifft auch für 1.3.5 / 1.3.5sr1 / 1.3.5sr2 und die verschiedenen Variationen der Version 1.3.8 zu).
  7. Sobald Sie die Erfolgsnachricht sehen, ist Ihr Upgrad vollständig. Sie können nun das Verzeichnis admin/install directory (und alle darin enthaltenen Dateien) löschen.

Probleme bei der Installation (typische Probleme)

Besonderer Hinweis: Bevor Sie weiterarbeiten, öffnen Sie die Datei config.php und prüfen Sie alle Pfadangaben erneut. Falsche Pfadangaben oder Tippfehler in den Pfaden führen zu allen möglichen Fehlern in Geeklog.

Wenn Sie eine Fehlermeldung sehen, lesen Sie diese bitte sorgfältig. Selbst wenn Sie nicht mit PHP vertraut sind, gibt Ihnen die Meldung Hinweise, was schief gegangen ist. Beachten Sie insbesondere die Pfadangabe in der Fehlermeldung, denn falsche Pfadangaben sind die Ursache für die meisten Probleme.

Wenn Sie mehr als eine Fehlermeldung erhalten, beginnen Sie immer mit dem ersten Fehler – die folgenden Fehler verschwinden häufig, sobald die erste bereingt wurde.

Ich bekomme den folgenden Fehler:

Parse error: parse error in /path/to/your/config.php on line 76

(die Zeilennummer kann abweichen)

Antwort: Ein Parserfehler weist typischerweise auf Tippfehler Ihrerseits hin. Prüfen Sie die Datei im Bereich der angegebenen Zeile (der tatsäche Fehler kann in der vorher gehenden Zeile liegen).

Typische Fehler sind:

Ich bekomme die folgenden Fehler:

Warning: main(some/path/to/system/databases/mysql.class.php): failed to open stream: No such file or directory in /path/to/your/system/lib-database.php on line 110

Fatal error: main(): Failed opening required 'some/path/to/system/databases/mysql.class.php' (include_path='.:/some/other/path/') in /some/path/to/system/lib-database.php on line 110

(Zeilennummer kann abweichen)

Antwort: Der Pfad, den Sie in der Variablen $_CONF['path'] angegeben haben, ist nicht richtig. Stellen Sie sicher, dass Sie sich nicht vertippt haben. Stellen Sie außerdem sicher, dass Sie einen absoluten Pfad benutzen – der mit dem Root Ihres Filesystems beginnt (und unter Unix/Linux mit einem / beginnt und mit einem Buchstaben unter Windows).

Ich bekomme den folgenden Fehler

1050: Table 'gl_access' already exists

Antwort: Sie haben das Installationsscript bereits ausgeführt (wahrscheinlich ohne Erfolg). Um auf der sicheren Seite zu bleiben, löschen Sie die Datenbank (drop database ... ) und erzeugen Sie eine neue leere Datenbank, bevor Sie das Installationsscript erneut starten.

Ich bekomme die folgenden Fehler während der Installation:

Fall 1:

Parse error: parse error in ../../lib-common.php on line 2231

Fatal error: Cannot instantiate non-existent class: template in ../../lib-common.php on line 335

Fall 2:

Parse error: parse error in /path/to/geeklog/public_html/lib-common.php on line 3036

Fatal error: Call to undefined function: plg_showcenterblock() in /path/to/geeklog/public_html/index.php on line 67

Fall 3:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /path/to/geeklog/public_html/lib-common.php on line 3815

Fatal error: Cannot instantiate non-existent class: template in /path/to/geeklog/public_html/lib-common.php on line 709

(Zeilennummer kann abweisen)

Antwort: Alle oben angeführten Fälle (und ähnliche Parserfehler, die Sie für die lib-common.php typischerweise im Bereich der Zeilen zwischen 3000 bis 4000 erhalten) weisen auf eine defekte lib-common.php Datei.

Wie bereits am Anfang dieses Dokuments erwähnt, wird diese Situtation für gewöhnlich durch einen der folgenden Umstände herbeigeführt:

Sie werden eine frische Kopie der lib-common.php auspacken und erneut bearbeiten und dazu einen "normalen" Texteditor benutzen müssen. Windowsbenutzer finden Hinweise auf Editoren hier und hier in den Threads des Forums auf geeklog.net.

Ich bekomme den folgenden Fehler:

Template Error: set_root: /some/path/to/public_html/layout/XSilver is not a directory. Halted.

Antwort: Auch das ist ein Problem mit der Pfadangabe. Prüfen Sie die Einstellung für $_CONF['path_html']. Wenn Sie das public_html-Verzeichnis nicht geändert oder umbenannt haben, brauchen Sie hier nichts zu ändern (versetzen Sie die Zeile wieder in den Originalzustand). Ansosnten lesen Sie bitte die Kommentare oben noch einmal sorgfältig, um zu verstehen, wie Sie diese Zeile korrekt ändern.

Ich bekomme den folgenden Fehler:

Warning: mysql_connect(): Access denied for user: 'username@localhost' (Using password: YES) in
/path/to/geeklog/system/databases/mysql.class.php on line 104
Cannnot connect to DB server

(Zeilennummer kann abweichen)

Antwort: Stellen Sie zunächst sicher, dass die Datenbankeinstellungen in config.php korerkt sind, insbesondere der Name und das Passwort des MySQL-Users, der Name der Datenbank und der Name Ihres MySQL-Servers.

Wenn Sie Ihren eigenen Server betreiben, wollen Sie sicher Ihrem MySQL-Benutzer saubere Rechte zuweisen. Loggen Sie sich in MySQL als MySQL-Rootuser ein und geben Sie die folgende Anweisung ein:

GRANT ALL PRIVILEGES ON database_name TO user@host IDENTIFIED BY 'password';

FLUSH PRIVILEGES; Die Worte in Kleinbuchstaben müssen natürlich mit den entsprechenden Werten ersetzt werden – klar.

Wenn Sie einen restriktiveren Zugriff wünschen (oder brauchen): Sie müssen Ihrem Datenbankbenutzer zumindest die Berechtigungen für ALTER, CREATE, DELETE, INSERT, SELECT und UPDATE einräumen. ALTER- und CREATE-Erlaubnis werden nur zur Installation und für Upgrades von Geeklog sowie für die Installation von Plugins und anderen Add-Onls gebraucht.

Probleme nach der Installation (typische Probleme)

Ich habe meine Site mit Erfolg in Gang gesetzt, bekomme aber die folgende Fehlermeldung oben auf der Seite:

Warning: fopen("/some/path/logs/error.log", "a") - Permission denied in /some/path/public_html/lib-common.php on line 1440

(Zeilennummer kann abweichen)

Antworten: Prüfen Sie, dass sowohl das logs-Verzeichnis als auch die darin enthaltenen Dateien wenigstens Zugriffsrechte von 775 aufweisen. Außerdem ist es möglich, dass Sie die Zugriffsrechte auf 777 setzten müssen, falls 775 auf Ihrem Server nicht ausreicht. Prüfen Sie dabei gleich, ob das public_html/backend-Verzeichni und die geeklog.rdf Datei die selben 775 oder 777 Berechtigungen aufweisen.

Tipp: Benutzen Sie das Script unter http://yourgeeklogsite/admin/install/check.php, um zu testen, ob alle Zugriffsrechte korrekt eingerichtet sind.

Sobald sich jemand ausloggt, erscheint die folgende Fehlermeldung:

Cannot add header information - headers already sent by (output started at /usr###/home/<userid>/public_html/geeklog/config.php:589) in /usr###/home/<userid>/public_html/geeklog/system/lib-sessions.php on line 133

(Zeilennummer kann abweichen)

Antwort: Stellen Sie sicher, dass Ihre Datei config.php keinerlei "Weißraum" nach dem schließenden ?> am Ende der Datei aufweist. Um ganz genau zu sein, sollten dahinter weder Blanks noch leere Zeilen auf diese beiden Zeichen folgen.

Wenn es immer noch zu Problemen kommt, können Sie:

  1. zur Seite http://www.geeklog.net gehen und sich in der Support-Sektion umsehen. Die Support-Sektion enthält eine FAQ und ein Suchsystem (versuchen Sie, nach der Fehlermeldung zu suchen, falls Sie eine Fehlermeldung bekommen haben).
  2. das Archiv der Mailingliste auf http://lists.geeklog.net/pipermail/geeklog-users/ besuchen. Sie können sich auch in die Mailingliste eintragen und Ihre Fragen an die Geeklog-Gemeinde stellen.
  3. den Chat bei irc.freenode.net, channel #geeklog besuchen. Halten Sie Ihre Pfadinformationen aus der config.php und der lib-common.php bereit.
  4. den Text der Fehlermeldung bei Google eingeben. Sie haben gute Chancen, dass Ihr Problem bereits bei anderen aufgetreten ist und gelöst wurde. Manchmal bringt die Suche nach einem speziellen Fehler in Google auch Seiten zum Vorschein, auf denen der gleiche Fehler auftritt.

Erweiterte Version dieses Dokuments von Jason C. Levine,
Übersetzt und von jeglichem Layout befreit: U.H.