Menu:

detailliert v0.8.0 (alt)

(für PyLucid v0.8.0)

Diese Anleitung beschreibt eine mögliche Vorgehensweise der Installation von PyLucid.
Alle Varianten gehen davon aus, dass PyLucid im Hauptverzeichnis des Webservers (document root) installiert wird.

Direkter Shell-Zugang zum Server

Wer die Möglichkeit hat direkt auf die Shell seines Servers zuzugreifen, sollte diese Nutzen. Viele Schritte der Installationsanleitung können dann direkt von hier per Copy und Paste ausgeführt werden oder bedürfen nur geringer Anpassung an die eigene Umgebung.

Bauen Sie dafür zuerst einmal eine Verbindung zum Server auf.
(Zum Beispiel direkt per SSH-Befehlt unter Linux/*unix oder mithilfe von Putty unter Windows.)

Durch die folgenden Zeilen werden einige Shell-Variablen gesetzt, die die spätere Arbeit erleichtern.
(Passen Sie die Werte ggf. an.)

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Lieblingseditor
EDITOR=vi



# document root des Webservers - anpassen!
DOCROOT=/var/www/


# Zwichenspeicher
TMPDIR=/tmp

Runterladen und Entpacken der aktuellen Version

Die jeweils aktuelle Version steht auf SourceForge.net zur Verfügung.
http://sourceforge.net/projects/pylucid/

Laden Sie das gepackte Archiv herunter und entpacken Sie es auf Ihrem Rechner.

Mithilfe eines FTP-Clients kopieren Sie nun das Verzeichnis pylucid in das Hautpverzeichnis des Webservers. (Achtung, mit pylucid-Verzeichnis ist nicht das entpackte Hauptverzeichnis, sonder das Verzeichnis "pylucid" unterhalb dieses Ordners gemeint.)

Mit Shell-Zugang kann das Archiv direkt auf dem Server heruntergeladen und dort entpackt werden:

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#zum Zwischenspeicher wechseln
cd $TMPDIR



# PyLucid runterladen
wget http://kent.dl.sourceforge.net/sourceforge/pylucid/PyLucid_v0.8.0_full.tar.bz2



# Entpacken
tar xfvj PyLucid_v0.8.0_full.tar.bz2


# Dateien ins document root kopieren
cp -r PyLucid_v0.8.0_full/pylucid/* $DOCROOT
cp PyLucid_v0.8.0_full/pylucid/.htaccess $DOCROOT

Datenbank einrichten

SQLite

Wenn Sie SQLite verwenden wollen, müssen Sie nichts tun. Beachten Sie aber die Sicherheitshinweise am Ende der Anleitung!

MySQL

MySQL ist bei vielen Webhostingangeboten inklusive und viel performanter als SQLite. Außerdem machen viele Hoster davon automatisch Sicherungen.
PyLucid braucht eine eigene Datenbank. Den Namen können Sie frei wählen, er wird später in die Konfigurationsdatei von PyLucid eingetragen.

Wenn Sie eine Möglichkeit haben SQL-Anweisungen auszuführen, können Sie das unten angegebene Satement verwenden. Denken Sie daren durch einen vernünftigen Namen zu ersetzen. Müssen Sie die Datenbank zum Beispiel per Web-GUI anlegen, vergessen Sie nicht UTF-8 als Zeichensatz einzustellen.

SQL
1
CREATE DATABASE <dbname> CHARACTER SET utf8;

Andere Datenbanken

TODO

PyLucid-Einstellungen anpassen

Alle Einstellungen für PyLucid werden zentral in der settings.py vorgenommen. Ein Gerüst für diese Datei liegt bereits im PyLucid-Verzeichnis, welches wiederum im Hauptverzeichnis Ihres Webservers liegt.
Kopieren Sie einfach die Beispieldatei, um Ihre Einstellungen vorzunehmen.

Auf der Shell reicht ein einfaches:

Bash
1
2
cp $DOCROOT/PyLucid/settings_example.py $DOCROOT/PyLucid/settings.py
$EDITOR $DOCROOT/PyLucid/settings.py

Im Abschnitt "Database connection info" müssen die Angaben zur Datenbank gemacht werden. Wenn Sie SQL-Lite verwenden möchten, sind keine Änderungen notwendig. Für andere Datenbanksysteme müssen die Variablen entsprechend angepasst werden.

Python
1
2
3
4
5
6
7
# Database connection info.
DATABASE_ENGINE = 'sqlite3' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'PyLucid.db3' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.

Unter anderem für Hash-Berechnungen verwendet PyLucid einen zusätzlichen Schlüssel. Geben Sie eine möglichst zufällige Zeichenkette ein. Sie dürfen die Zeichenkette später nicht ändern! Bewahren Sie den Schlüssel auf, er könnte später benötigt werden, wenn Sie Ihre Homepage zum Beispiel nach einem Festplattendefekt neu Aufsetzen wollen. (Siehe auch Abschnitt Sicherheit)

Python
1
2
3
4
5
# A secret key for this particular Django installation. Used in secret-key
# hashing algorithms. Set this in your settings, or Django will complain
# loudly.
# Make this unique, and don't share it with anybody.
SECRET_KEY = ''

Konfiguration des Webservers

Für eine einfache Anpassung des Webservers für PyLucid wird die Datei ".htaccess" mitgeliefert. Sie befindet sich Hauptverzeichnis des Webservers.
Der Webserver muss entsprechend konfiguriert sein, damit die Einstellungen des ".htaccess" wirksam werden.
TODO (weitere Beschreibung hierzu?)

Die ".htaccess"-Datei ist sehr ausführlich Dokumentiert. Deshalb hier nur Beispielhaft die notwendigen Änderungen um PyLucid mit Standard-CGI laufen zu lassen. Dies sollte immer funktionieren, ist aber vergleichsweise langsam. Diese Einstellungen können jederzeit angepasst werden.

Bash
1
$EDITOR $DOCROOT/.htaccess
unknown type
# Enable execution of CGI scripts using mod_cgi
# http://httpd.apache.org/docs/2.0/mod/core.html#options
Options +ExecCGI
unknown type
# http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addhandler
AddHandler cgi-script .cgi

Inbetriebnahme

Rufen Sie die Installationsseiten von PyLucid auf. Schrägstrich am Ende nicht vergessen!

http(s)://www.domain.de/_install/

Wenn Sie alle vorhergehenden Schritte richtig ausgeführt haben, werden Sie nun dazu aufgefordert einen Installations-Passwort-Hash zu generieren. (Passwort muß mindestens 8 Zeichen lang sein.)
Diesen müssen Sie nun unter "_INSTALL SECTION" in der settings.py angeben

Python
1
2
3
4
5
6
7
#_____________________________________________________________________________
# _INSTALL SECTION


# Install Password to login into the _install section.
ENABLE_INSTALL_SECTION = True
INSTALL_PASS_HASH = "sha1$81111$0c00006200009e0000cb9610bf070a9e860000"

Anschließen müssen Sie die Webseite neu laden und sich einloggen. Die Sich öffnende Seite übernimmt für Sie die Einrichtung der Datenbank.
Folgende Punkte müssen ausgeführt werden:

Abschließend müssen Sie noch ein letztes mal Änderungen in der settings.py vornehmen:

Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#_____________________________________________________________________________
# MIDDLEWARE CLASSES



# List of middleware classes to use. Order is important; in the request phase,
# this middleware classes will be applied in the order given, and in the
# response phase the middleware will be applied in reverse order.
#
# !!! IMPORTANT !!!
# * In the first install phase (befor the database tables exists) the
# 'SessionMiddleware' and 'AuthenticationMiddleware' must be deactivated!
# * After "syncdb" you must activate 'SessionMiddleware' and
# 'AuthenticationMiddleware'!
# * The DebugPageCache should be *never* activated. Only for dev debugging.
# !!! IMPORTANT !!!
#
MIDDLEWARE_CLASSES = (



# DebugPageCache normaly not used.
# 'PyLucid.middlewares.page_cache_debug.DebugPageCache',



# Activate Session- and Authentication-Middleware after 'syncdb' :
# -------------------------------------------------------------------------
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',



# -------------------------------------------------------------------------



'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.doc.XViewMiddleware',


'PyLucid.middlewares.pagestats.PageStatsMiddleware',
)
Python
1
2
3
4
5
6
7
#_____________________________________________________________________________
# _INSTALL SECTION


# Install Password to login into the _install section.
ENABLE_INSTALL_SECTION = False
INSTALL_PASSWORD_HASH = "sha1$81111$0c00006200009e0000cb9610bf070a9e860000"

Sicherheit

Sie sollten Testen, ob es dritten möglich ist, Ihre settings.py und ggf. Ihre SQLite-Datenbank anzusehen bzw. herunterzuladen.

http://www.yourdomain.tld/PyLucid/settings.py
http://www.yourdomain.tld/PyLucid/PyLucid.db3

Um Nutzern den direkten Zugriff auf Dateien zu verwehren kann man in der .htaccess solche Angaben machen:

XML
1
2
3
<Files PyLucid.db3>
    Deny from all
</Files>

Die Install-Passwort-Hash in der settings.py kann gelöscht werden.

Für den Fall der Fälle sollten Sie mindestens Ihre Datenbank und den "SECRET_KEY" aus der settings.py sichern.