Konfiguration

Die Konfigurationsdatei des Repoze-Projekts etc/zope2.ini gliedert sich in folgende Abschnitte:

[Default]

Dieser Abschnitt enthält globale Angaben. Zunächst ist nur folgendes angegeben:

debug = True

Hiermit wird das Repoze-Projekt üblicherweise im Debug-Modus gestartet, wobei hiervon nicht nur der Zope-Server, sondern auch weitere Paste-Middleware beeinflusst werden kann.

[app:zope2]

In diesem Abschnitt wird die zope2-WSGI-Anwendung definiert.

paste.app_factory

Paste-spezifische Angabe für den Aufruf einer WSGI-Anwendung.

Die weiteren Angaben dieses Abschnitt sind Konfigurationen von obob, einem Object Publishing Framework für Repoze.

zope.conf

gibt den Ort der Zope-Konfigurationsdatei an, wobei %(here)s eine Paste-Konvention für das Verzeichnis ist, in der die Paste-Konfigurationsdateien liegen.

[pipeline]

Abschnitt, der jeweils eine WSGI-Pipeline definiert. Eine Pipeline kann aus keiner oder mehr Middleware und einer Anwendung bestehen:

[pipeline:main]
pipeline = egg:Paste#cgitb
           egg:Paste#httpexceptions
#           egg:Paste#translogger
           egg:repoze.retry#retry
           egg:repoze.tm#tm
           egg:repoze.vhm#vhm_xheaders
           errorlog
           zope2

In dieser Konfiguration steht zope2 am Ende und verweist auf die im Abschnitt [app:zope2] definierte Zope-WSGI-Anwendung.

egg:Paste#cgitb

Exception handler, der die Ausgabe des tracebacks coloriert. Es können auch andere exception handler, wie z.B. evalerror, verwendet werden:

egg:Paste#evalerror
egg:Paste#httpexceptions

gibt für bestimmte Python-Exceptions entsprechende HTTP-Exceptions aus, z.B. 404 Not Found, 302 Redirect, 401 Unauthorized.

egg:Paste#translogger

Wird der translogger eingeschaltet, wird das Access-Log in der Konsole ausgegeben.

egg:repoze.retry#retry

Implementierung einer retry policy, wobei konfiguriert werden kann, bei welchen Fehler eine erneute Anfrage erfolgt und wie oft eine solche Anfrage wiederholt wird.

egg:repoze.tm#tm

Implementierung der ZODB transaction management policy. repoze.tm kann auch verwendet werden um Transaktionen z.B. von relationalen Datenbanken oder von Dateisystem-Operationen zu steuern.

egg:repoze.vhm#vhm_xheaders

Zope’s Virtual Host Monster entsprechende WSGI-Middleware. Die Schreibweise unterscheidet sich zwar, die Wirkung ist jedoch dieselbe (s.a. README.txt).

errorlog

Ersatz für Zope2’s error_log.

[server:main]

Dieser Abschnitt definiert, welcher HTTP-Server in welcher Konfiguration verwendet wird. Statt des ZServers könnte hier auch Paste, WSGIUtils oder cherrypy angegeben werden. Einen Überblick über verschiedene Server-Konfigurationen finden Sie hier: In the Fitting Room: Trying on WSGI Servers.