Zope 2.9.x installieren

Viele an Zope 2.9 interessierte Programmierer würden gerne schnell loslegen und mit Zope experimentieren, stolpern aber über die Installation. In den Mailinglisten wird man in der Regel auf die Dokumentation verwiesen, dabei wäre eine Schritt-für-Schritt-Anleitung doch jetzt genau das Richtige. Für die Linuxer unter den Zope-Einsteigern kann ich diese bieten.

Zwar bieten einige Linux-Distributionen Zope-Pakete an, aber durch die rasche Entwicklung von Zope sind diese meist veraltet. Außerdem gibt es häufig Probleme mit bereits vorhandenen Webserver-Installationen oder Python-Versionen.

Daher werde ich in diesem HowTo einen distributionsunabhängigen Weg beschreiben. Diese Methode ist sicher nicht die einzige oder die beste, aber ich habe damit nie ein Problem gehabt. Der Zeitaufwand dürfte zwischen 15 und 30 Minuten liegen (Download-Zeiten nicht eingeschlossen).

Vorbereitungen und Installation

Als erstes legen wir für Zope einen neuen User an. In dessen Home-Verzeichnis können wir uns anschließend austoben und bei Bedarf auch alles spurlos wieder beseitigen. Dadurch entsteht auch kein Konflikt mit der Paket-Verwaltung der verwendeten Linux-Distribution.

Dafür führen wir folgendes Kommando als root aus:

useradd -k /etc/skel -d /home/zopehome -m zopehome

Anschließend muss mit

passwd zopehome

noch ein Passwort für zopehome vergeben werden.

Für alle folgenden Schritte werden keine root-Rechte mehr benötigt.

Vorbereitungen und Herunterladen der Quelltexte

Zunächst melden wir uns als zopehome an und richten uns unser Home-Verzeichnis ein.

mkdir src packages zope zope/installation zope/instances

Diese drei Verzeichnisse werden für die Quelltext-Pakete, das Compilieren und die eigentliche Server-Installation benötigt. Die Namensgebung ist dabei völlig willkürlich und kann nach Belieben geändert werden.

Für die Installation besorgen wir uns die Quelltext-Pakete von Python und Zope. Diese bekommt man auf www.python.org sowie www.zope.org.

Zunächst wechseln wir in das Verzeichnis packages, und laden uns die aktuelle Version von Zope (2.9.4) herunter.

wget http://www.zope.org/Products/Zope/2.9.4/Zope-2.9.4-final.tgz

Die dafür benötigte Python-Version ist 2.4.3 oder höher.

wget http://www.python.org/ftp/python/2.4.3/Python-2.4.3.tar.bz2

Nun entpacken wir die beiden Pakete in die entsprechenden Verzeichnisse


tar -xzvpf Python-2.4.3.tgz -C ~/src/
tar -xzvpf Zope-2.9.4-final.tgz -C ~/src/

Als nächstes kompilieren wir Python und installieren es in unser Home-Verzeichnis. Als Vorbereitung dafür legen wir ein weiteres Verzeichnis mit Unterverzeichnissen an.


mkdir ~/local
cd ~/local
mkdir bin sbin lib include etc man share info

Danach wechseln wir nach ~/src/Python-2.4.3.

Python und Large-File-Support

Damit unser selbst gebautes Python auch Dateien größer 2 GByte unterstützt, müssen wir dem Compiler entsprechende Optionen mitgeben. Dafür führen wir folgendes (Bash-)Kommando aus:


export CFLAGS=$CFLAGS" -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
export CXXFLAGS=$CFLAGS

Für andere Shells muss das Kommando entsprechend abgeändert werden. Natürlich können die CFLAGS noch um weitere Optionen erweitert werden. Als nächstes rufen wir configure auf.


./configure --with-threads --with-large-file\
 --prefix=/home/zopehome/local

Anschließend folgt


make
make install

Zur Kontrolle kann man noch (am besten vor make install) make test aufrufen. Unter den vielen verschiedenen Tests die nun ablaufen ist auch einer der den Large File Support überprüft. Durch make install wurde unser selbst gebautes Python nach ~/local/ installiert. Der Python-Interpreter selbst liegt nun in ~/local/bin/. Zur Bequemlichkeit legen wir in ~/bin/ einen symbolischen Link auf den Interpreter an.

ln -s /home/zopehome/local/bin/python /home/zopehome/bin/Python

Damit ~/bin auch im Pfad liegt sollte man zur ~/.bashrc_profile oder .profile folgende Anweisung hinzufügen:


. ~/.bashrc
if [ -d ~/bin ] ; then
    PATH=~/bin:"${PATH}"
fi

Nach dem nächsten Login sollte sich der neue Python-Interpreter direkt mit Python aufrufen lassen.

Zope bauen

Nun wechseln wir nach ~/src/Zope-2.9.4-final/ und kompilieren den Zope-Server. Zu beachten ist, dass das Verzeichnis, in das wir das Zope-Quellpaket entpackt haben, nicht wie früher auch gleichzeitig das Installationsverzeichnis des Servers ist. Laut Dokumentation ist dies zwar möglich aber nicht zu empfehlen. Hier führen wir nun folgendes Kommando aus:

./configure --prefix=~/zope/installation --with-python=~/local/bin/python

Danach folgen die Kommandos:


make
make install

Zope wird nun gebaut und anschließend in das Verzeichnis ~/zope/installation installiert.

Mit dieser Zope-Installation können nun mehrere voneinander unabhängige Zope-Instanzen erzeugt werden. Zum Erzeugen einer Instanz führen wir das Kommando

~/zope/installation/bin/mkzopeinstance.py

aus. Das Skript fragt zunächst wo die Zope-Instanz angelegt werden soll. Für unsere erste Beispiel-Instanz geben wir ~/zope/instances/instance_1 an. Danach legen wir noch einen Namen und ein Passwort für den initialen User an (Aufschreiben!).

Zope konfigurieren

Als nächstes öffnen wir in einem Editor die Konfigurationsdatei ~/zope/instances/instance_1/etc/zope.conf. Dort suchen wir nach den drei Einträgen ip-address, http-server und ftp-server.

Als IP-Adresse tragen wir natürlich die Adresse unseres Rechners ein. Für http-server und ftp-server sind schon die Port-Adressen 8080 und 8021 eingetragen. Ein Webserver läuft aber normalerweise auf Port 80 und ein FTP-Server auf Port 21. Da wir unseren Zope-Server als normaler User betreiben wollen, für den Start eines Server-Dienstes auf einem Port unter 1024 aber root-Rechte benötigt werden, lassen wir die Werte wie Sie sind und Speichern zope.conf ab. (Hier muss ich noch erwähnen, dass auch der Port 8080 schon besetzt sein könnte, z.B. durch einen Proxy).

Zope starten

Nun starten wir Zope mit der Zope-Shell:

~/zope/instances/instance_1/bin/zopectl

Wir bekommen folgenden Prompt zu sehen:


daemon manager not running
zopectl>

Die Zope-Shell ist sehr praktisch, um den Zope-Server vom Terminal aus zu steuern. Das Kommando help listet alle verfügbaren Kommandos auf.

zopectl> help Documented commands (type help <topic>): ======================================== EOF fg kill quit run start wait adduser foreground logreopen reload shell status debug help logtail restart show stop zopectl>

Als erstes testen wir die Installation mit dem Kommando debug.

zopectl> debug Starting debugger (the name "app" is bound to the top-level Zope object) >>>

Wenn keine Fehler aufgetreten sind, dann erscheint nur der Prompt >>>. Den Debugger verlassen wir wieder mit Strg-D.

Nun starten wir Zope.

zopectl> start . daemon process started, pid=1234 zopectl>

Natürlich ändert sich die PID bei jedem Start.

Jetzt können wir die Zope-Startseite in einem Browser öffnen.

http://IP_ADRESSE:8080/

Diese Seite enthält einige nützliche Links zu weiterführenden Informationen zu Zope. Für uns ist sie aber zunächst einmal nur die Bestätigung, dass alles glatt gegangen ist und der Zope-Server auf Port 8080 läuft.

Als nächstes loggen wir uns in den Managementscreen des Servers ein.

http://IP_ADRESSE:8080/manage

Dafür verwenden wir den Usernamen und das Passwort unseres initialen Users.

Zope Startseite

Management- Screen

Mit dem Kommando quit können wir die Zope-Shell nun wieder verlassen und das Terminal-Fenster schließen. Zope wird trotzdem weiterlaufen.

Zope lernen

Nach der erfolgreichen Installation sollte man sich unbedingt das Zope Book von www.zope.org herunterladen und ausdrucken. Und dann steht dem Abenteuer eigentlich nichts mehr im Wege ;-)

Sven Rudolph