Installation, Start und Anmeldung
Windows: Zope
für Windows kommt als selbstinstallierende .exe-Datei. Der Installationsprozess
erstellt einen Namen für die Zope-Installation sowie ein Zielverzeichnis.
Anschließend muss ein neues 'Initial User' (Anfangsbenutzer) Zope-Benutzerkonto
zur ersten Anmeldung eingerichtet werden. Unter Windows NT oder Windows
2000 kann Zope als Dienst ausgeführt werden, was sich für einen
öffentlichen Server empfiehlt. Unter Windows 95, 98 oder ME funktioniert
dies nicht.
Unix / Linux: Nach dem Herunterladen der Binärdaten für
die Zielplattform (Die aktuellste stabile Version (Februar 2003) ist die
Version 2.6.1) ist das tarball-Archiv zu entpacken:
$ tar xvfz Zope-2.6.1-linux2-x86.tgz. Dies entpackt Zope in
ein neues Verzeichnis. Nun ist das Zope-Verzeichnis einzugeben und das
Zope-Installationsskript auszuführen:
$ cd Zope-2.6.1-linux2-x86
$ ./install
Das Installationsprogramm erstellt u.a. ein initiales Benutzerkonto,
dessen Name und Kennwort später mit dem zpasswd.py-Skript geändert
werden kann und konfiguriert Zope so, dass es unter einer UNIX-Benutzer-ID
läuft. Für die Ausführung unter einer anderen Benutzer-ID
ist die Befehlszeilenoption -u anzuwenden. Weitere Informationen zur Installation
finden sich unter doc/INSTALL.txt. Details zum Installationsprogramm
liefert die Hilfsoption -h: $ ./install -h.
Kompilieren von Zope aus dem Quelltext: Wenn keine Binärdateien
für eine Zielplattform verfügbar sind, kann Zope aus dem Quelltext
kompiliert werden. Dazu ist es erforderlich, Python aus dem Quellcode für
die jeweilige Plattform zu installieren (Python kann von der Python.org-Web-Site
bezogen werden), daneben muss ein C-Compiler vorhanden sein. Die aktuellste
Python-Version ist oft neuer als die offiziell in Zope unterstützte.
Informationen zur benötigen Python-Version, um Zope zu kompilieren,
finden sich in den Release Notes auf der Web-Site. Die heruntergeladene
Zope-Quelltext-Version ist ebenfalls ein tarball-Archiv (Extraktion: s.
oben). Im entstandenen Zope-Verzeichnis ist das Zope-Installationsskript
auszuführen:
$ cd Zope-2.6.1-src
$ python wo_pcgi.py
Das Installationsprogramm kompiliert Zope und erstellt eine Installation,
wobei auch hier Informationen ausgegeben werden u.a. Name und Kennwort
des Anfangsbenutzers. Es ist wichtig, diese Informationen zu vermerken,
um sich in Zope anzumelden.
Start: Nach erfolgter
Installation und Aufruf der Stapeldatei 'start.bat'
(unter Unix $ ./start &) werden Protokollinformationen
ausgegeben, u.a. der Port, auf dem Zope läuft. Über den
Systemsteuerungspunkt "Dienste" kann Zope auch als Dienst gestartet
und beendet werden, was über das Ereignisprotokoll nachvollzogen
werden kann. Mit dem Start wird
auch der Zope-eigene Webserver hochgefahren, oder es kann
eine Anbindung an einen evtl. bereits vorhandenen Web-Server
erfolgen.
Anmeldung: Die Anmeldung erfolgt
über einen Web-Browser. Zopes Benutzerschnittstelle basiert
auf HTML und kann mit jedem modernen HTML-Browser angesteuert werden
(z.B. Mozilla, Microsoft Internet Explorer ab Ver. 3.0, Netscape
Navigator). Zur Anmeldung muss die Management-URL von Zope eingegeben
werden, das ist Zopes Basis-URL mit angehängtem /manage.
Ist Zope auf einem lokalen Rechner installiert, so dass er auf
dem Standard-Port 8080 läuft, ist die Management-URL: http://localhost:8080/manage.
In der Regel funktioniert diese URL, aber es ist u.U.
ein Login auf einer anderen Maschine notwendig, deren URL in der
Logging-Information ausgegeben wird:
------
2000-08-07T23:00:53 INFO(0) ZServer Medusa (V1.18) started
at Mon Aug 7 16:00:53 2000
Hostname: himbeere
Port:8080
------
2000-08-07T23:00:53 INFO(0) ZServer FTP server started
at Mon Aug 7 16:00:53 2000
Authorizer:None
Hostname: himbeere
Port: 8021
------
2000-08-07T23:00:53 INFO(0) ZServer Monitor Server (V1.9)
started on port 8099
Der erste Protokolleintrag zeigt, dass Zope auf einer Maschine mit dem Namen 'himbeere' und der Web-Server auf Port 8080 läuft, mit der Management-URL http://himbeere:8080/manage. Nach Eingabe der Zope Management-URL im Browser ist ein Benutzername und Kennwort anzugeben. Hier sollten die Daten des Anfangsbenutzers eingegeben werden, die während der Installation erstellt wurden. Um diese zu ermitteln, muss Zope heruntergefahren, das Kennwort des Anfangsbenutzers mit dem zpasswd.py-Skript geändert und Zope neu gestartet werden.
Steuerung: Das Management-Interface
Nach erfolgreicher Anmeldung erscheint das Zope Management Interface:
Abb. 4: Das
Zope Management Interface
Im Management-Interface
wird die Objekt-Struktur einer Web-Anwendung als Baum-Hierarchie dargestellt. Der Navigationsbereich
im linken Rahmen zeigt den Stammordner und seine Unterordner
an. In diesem Fall ist der "manager" angemeldet. Bei der
Anmeldung ist der Name des Anfangsbenutzerkontos statt "manager"
zu sehen. Der Arbeitsbereich
im rechten Rahmen zeigt den Inhalt eines Ordners bzw. zu
verwaltende Objekte an. Die Reiter öffnen unterschiedliche
Ansichten und Verwaltungsfunktionen des aktuellen Objektes,
dessen Symbol und URL direkt darunter stehen ("Folder at /"
bedeutet: Aktuelles Objekt ist ein Ordner und seine zu Zopes Basis-URL
relative Objekt-URL /). Über die URLs kann
komfortabel in den Objekten navigiert werden.
Beispiel:
Bei der Ordnerstruktur /Zoo/Reptilien/Schlangen kann
der Ordner unter /Zoo durch Klicken auf das Wort Zoo in der
URL des Ordners geöffnet werden.
Der oberste
Rahmen enthält folgende Auswahlliste: Preferences: Setzen
von Standardvorgaben für eine Zope-Sitzung, Logout: Abmeldung,
Quick Start Links: Links zu Dokumentations- und Gemeinde-Ressourcen.
Die Abmeldung erfolgt
durch Logout im oberen Rahmen und Abbruch der erneuten Anmeldeaufforderung
oder über das Beenden des Browsers.
Alle Elemente einer Zope-Site
sind in Wirklichkeit Objekte, und Zope-Webanwendungen
werden prinzipiell vollständig aus Objekten erstellt.
Ein Zope-Objekt ist als ein Stück Software oder eine
Binärdatei vorstellbar. Zope-Objekte können
sein: Dateien, Ordner als Objekt-Container, Dokumente, Datenbankverbindungen,
Programmmethoden, Skripte u.a. und alle Objekte werden
in der ZODB gehalten, die u.U. eine sehr große Datei im
NT- oder UNIX-Dateisystem bildet. Das Besondere an der ZODB ist, dass
sie z.B. für einen FTP- oder WebDAV-Client aussieht und sich
verhält wie ein Dateisystem. Im Allgemeinen
übernehmen Zope-Objekte drei Arten von Aufgabenbereichen: Einige Objekte
Objekte erstellen:
Durch "Select
type to add..." aus der Produktauswahlliste wird dem aktuellen
Ordner ein neues Objekt hinzugefügt. Objekte werden immer
auf dieselbe Weise erstellt:
Auswahl des Ordners, dem ein neues Objekt hinzugefügt
werden soll,
Auswahl
der Art des hinzuzufügenden Objektes in der Auswahlliste,
Ausfüllen
des Erstellformulars und Bestätigung
=> Zope erstellt ein neues Objekt im aktuellen Ordner. Jedes Zope-Objekt
hat eine Kennung, die bei der Erstellung angegeben werden muss.
Die Kennung bestimmt die Benennung der Objekte und ihre URLs. Im
nächsten Abschnitt werden die grundlegenden Objekte behandelt.
Objekttypen
Benutzer |
Zope unterstützt
folgende Arten von Benutzern: Manager, Andere und Notfallbenutzer
(s. ausführlich in der Sektion "Content Management-Aspekte") |
Ordner (Folder) |
Ordner sind die Bausteine
von Zope. Sie dienen der Gruppierung anderer Objekte und
können ineinander verschachtelt sein. Der Einsatz von Ordnern
verleiht einer Zope-Site Struktur, die sehr wichtig ist, da
viele Aspekte (von Sicherheit über Verhalten zu Darstellung)
von der Ordnerstruktur der Site beeinflusst werden. Der besondere
Ordnertyp "Temporärer Ordner" dient der zeitlich begrenzten
Speicherung von Objekten (standardmäßig temp_folder
im Stammordner). |
(DTML-) Dokumente |
DTML-Dokumente werden
verwendet, um mehrfach nutzbare Web-Seiten und Dokumentenabschnitte
wie Sidebars zu erstellen. Sie können Scripting-Befehle
in DTML enthalten. Ein DTML-Dokument kann auch ausschließlich
aus HTML-Elementen aufgebaut sein, und es können sogar
ganze Zope-Sites mit HTML-Dokumenten und Ordnern erstellt werden.
Dynamik entsteht jedoch erst aus der Mischung von HTML und DTML.
DTML-Dokumente können auf mehrere verschiedene Arten
betrachtet werden: 1. Im Management-Interface
über den View-Reiter, 2. Direkter Aufruf über
das Web durch Besuch des URL-Standorts. Die URL eines
DTML-Dokuments basiert auf seiner ID-Kennung. Befindet sich
z.B. ein Ordner Fred im Unterordner der Onkel, dann wäre
seine URL: http://localhost:8080/Onkel/Fred
3. Darstellung durch andere DTML-Objekte: Der ausgewertete
Inhalt eines Dokuments wird in den Inhalt eines aufrufenden
Dokuments eingefügt: Dies ist ein grundlegendes
Konzept in Zope
|
Dateien |
Dateien
enthalten nicht ausdrücklich unterstützte Rohdaten wie Programme,
Audio- oder Videodaten, Flash-Dateien, Applets, Tarball-Archive
u.a. Dateien können auch textuellen Inhalt speichern, der kein
DTML-Scripting benötigt. Jedes Datei-Objekt hat einen
bestimmten Inhaltstyp (Content Type) als Standard-Internet-MIME- Kennzeichnung
für einen Dateityp. Abb. 5 zeigt, wie Zope
nach dem Hinzufügen einer Datei den Inhaltstyp aufgrund des Dateinamens
errät. |
Bilder |
Zope-Bilder
sind spezielle Zope-Objekte, die GIF-, JPEG- und PNG-Grafiken
darstellen. Bildobjekte haben dasselbe Management-Interface
wie Dateiobjekte und Zusatz- funktionen (u.a. Bildvorschau). Die
häufigste Verwendung ist das Einbinden in Web-Seiten.
Das gute Vorgehen (im Sinne des Content-Management) ist die Einbindung
eines Tags an der Stelle, wo das Bild erscheinen soll: <dtml-var
"bilder.bildname">, mit "bildname" als Id des Bildes. Beim
Aufruf wird dieses Tag in ein normales Image-Tag mit Höhen- und
Breitenangabe umgewandelt. Eine andere mögliche,
weniger gute Art ist die Verwendung des klassischen HTML-Tags
IMG: <img src="logo"> Soll dieses Logo auf jeder Seite in der linken oberen Ecke erscheinen, muss in der Methode standard_html_header ein Verweis darauf erstellt werden:
=> Im Quelltext: Der var-DTML-Code wird in ein IMG-Tag mit Breiten- und Höhenangabe umgewandelt: Zope-Bilder verhalten sich genauso wie auf einem normalen Web-Server gespeicherte Bilder. So kann z.B.mit der absoluten URL "http://imageserver:8080/Vögel/Sittich.jpg" ein Bild in jede Web-Seite auf jedem Web-Server eingebunden werden. |
Methoden |
Methoden, insbesondere DTML-Methoden,
sind für die Modellierung von "Prozessen" zuständig.
Sie haben keine Eigenschaften und bekommen ihren Kontext vom aufrufenden
Objekt. DTML-Methoden können als
"Inhalt-erzeugende Prozesse" und Python- oder Perl-Skripte
als "Inhalt-verarbeitende Prozesse" beschrieben werden. Externe
Methoden sind Skripte mit unbeschränktem
Zugriff auf Sicherheitskritische Bereiche (z.B. Dateisystem). |
Seitenvorlagen |
Seit Zope 2.5 gibt
es einen Objekttyp namens "Page Templates", der über
HTML-Vorlagen die Definition dynamischer Darstellungen für
eine Web-Site ermöglicht. Über "Page Templates" in
der Produktauswahlliste können auch vorhandene HTML-Dateien
hochgeladen und in Seitenvorlagen umgewandelt werden. Der HTML-Code
der Vorlage wird dadurch dynamisch, dass spezielle XML-Namensraum-Elemente
eingefügt werden, die das dynamische Verhalten für die
Seite definieren. |
Tab. 3: Objekttypen
Abb. 5: Die Eigenschaft
"Content Type"
Kann Zope den Dateitypen nicht erkennen, wird der Standardwert, die allgemeine Inhaltsart application/octet-stream verwendet. Der Inhalt einer Datei kann über das Öffnen der Ansicht Upload geändert werden. Textdateien kleiner als 64kB können mit dem Management-Interface bearbeitet werden. Eine Datei kann über den Reiter View oder durch URL-Aufruf betrachtet werden. Intern ist der Reiter View lediglich eine Methode, um vom Zope-Management-Interface aus zur URL einer Datei zu gelangen.
Abb. 6:
Die Ansicht zum Verwalten von Eigenschaften
Eine Eigenschaft
besteht aus einem Namen, einem Wert und einem
Typ. Neben Standard-Eigenschaftstypen wie string,
int, long, float unterstützt Zope auch lines (Folge
von Zeichenfolgen), tokens (Folge von Wörtern),
text (eine string-Eigenschaft mit Anpassung der Zeilenumbruch-Zeichen),
selection (zur Erstellung von Auswahllisten) und multiple
selection (Mehrfachauswahllisten).