Für eilige Leser
Sofern auf Ihrem Rechner eine übliche Python-Umgebung installiert ist, wechseln Sie in das Scripts-Verzeichnis und rufen einfach easy_install auf.Anschliessend können Sie mit mkzopeinstance eine Zope-Instanz erzeugen, welche die Laufzeit-Umgebung für ZMS bereit stellt:
/home/zope/bin>./pip install ZMS3
/home/zope/bin>./mkzopeinstance
Installation im Detail
ZMS ist eine Python-Software; daher muss zunächst Python installiert werden. Empfohlen werden die Version 2.7. Der Python-Installer existiert für alle gängigen Betriebssysteme. Voraussetzung für die ZMS-Installation ist das Vorhandensein einer typischen Python-Umgebung; diese wird in drei Schritten erzeugt:
- Python installieren
- Setuptools installieren: Das Python Modul setuptools stellt u.a. easy_install bereit, damit man Python Packete direkt aus dem Web installieren
- Virtualenv erzeugen: das Python Modul virtualenv erzeugt eine gespiegelte zusätzliche "virtuelle" Python.Umgebung, welche auf der primären Python-Installation basiert. In dieser virtuelle Umgebung können die eigenen Python Anwendungen laufen. Die virtuelle Umgebung kann jederzeit gelöscht werden, ohne dass die primäre Python-Installation davon betroffen ist.
Dann wird in der virtuellen Umgebung per pip das Python-Package ZMS3 installiert; das Package zieht aufgrund definierter Abhänigkeiten automatisch alle erforderlichen Python-Resourcen (in erster Linie Zope-Komponenten). Abschliessend kann dann eine Zope-Instanz erzeugt werden, welche den Applications-Server für ZMS bereitstellt.
cd /usr/bin/
virtualenv --no-site-packages /home/zope
cd /home/zope/bin
./pip install ZMS3
./mkzopeinstance -d /home/zope/instance/production -u admin:******
./mkzopeinstance -d /home/zope/instance/staging -u admin:******
Der oben stehende Installationsverlauf beginnt mit der Einrichtung einer virtuellen Python-Umgebung speziell für die Nutzung von Zope:
/home/zope/
Dann werden auf dem bin-Folder per pip neben ZMS noch weitere Python-Produke installiert. Zum Schluss werden eine oder zwei Zope-Instanz per mkzopeinstance-Script mit den Parametern für Lokalisation, Name und initialem Manager-User erzeugt.
Als Pfad für die Zope Instanz bietet sich ein "instance-Folder" im Ordner der für Zope eingerichteten Python-Umgebung an, z.B.:
/home/zope/instance/production/
Falls es einen Installations-Abbruch durch einen Zertifikatsfehler geben sollte, kann man bei der der aktuellen pip-Version den Parameter --trusted-host zmslabs.org ergänzen. Damit sieht der Installations-Aufruf folgendermaßen aus:
./pip install ZMS3 --trusted-host zmslabs.org
TIPP: Sofern SQL-Datenbank-Interfaces genutzt werden sollen, ist sicherzustellen, dass auf dem Betriebssystem die entsprechenden Pakete installiert sind, z.B. libmysqlclient-dev für MySQL oder libsqlite3-dev für SQLite
# Zusatz-Installation von SQL-Interfaces #
cd /home/zope/bin
./pip install -U Products.ZSQLMethods==2.13.4
./pip install -U MySQL-python==1.2.5
./pip install -U Products.ZSQLiteDA==0.6.1
./pip install -U Products.ZMySQLDA==3.3.1
Nach der Zope- Installation können Startup-Scripte angelegt werden, um die Zope-Instanzen beim Hoch- bzw. Herunterfahren des Rechners zu starten oder zu stoppen. Zum Starten oder Stoppen (per Hand) wird als Administrator (root) folgendes eingegeben:
sudo su -
/etc/init.d/zope production start
/etc/init.d/zope production stop
#!/bin/bash
# The echo return value for success (defined in /etc/rc.config).
# Usage: $0 (production|staging start|stop}
return=$rc_done
case "$2" in
start)
su - zope -c "/home/zope/instance/$1/bin/zopectl start" >> /home/zope/instance/$1/log/system.log 2>&1
echo -e "$return"
;;
stop)
/home/zope/instance/$1/bin/zopectl stop >> /home/zope/instance/$1/log/system.log 2>&1
echo -e "$return"
;;
*)
echo "Usage: $0 (production|staging start|stop}"
exit 1
;;
esac
test "$return" = "$rc_done" || exit 1
exit 0
Das Script startet Zope mit dem User zope als Dienst., der über das Web-GUI auch restartet werden kann Dies wäre beim direkten Aufruf des Start-Scriptes auf dem bin-Folder der Zope-Instanz nicht möglich:
su - zope
cd /home/zope/instance/production/bin
nohup ./runzope &