Deutsche Zope User Group
Gast 1 Benutzer online
DZUG-News

Installation von ZOPE auf Debian GNU/Linux

Eine kleine Anleitung, wie man m�glichst einfach einen ZOPE Server mit Postgres- oder MySQL-Datenbankanbindung auf einer Debian woody aufsetzt.

Installation von ZOPE auf Debian GNU/Linux

Folgendes "HOWTO" soll zeigen, wie man m�glichst einfach einen ZOPE Server mit Postgres- oder MySQL-Datenbankanbindung auf einer Debian woody aufsetzt.

Es besteht die M�glichkeit, ZOPE �ber den Debian Paketmanager zu installieren oder ZOPE direkt aus den Sourcen von zope.org zu bauen. Beides soll hier kurz beschrieben werden.

A) Vor�berlegungen

Vorab sollte man vorsichtshalber mit "apt-get update" und einem anschliessenden "apt-get upgrade" sein Debian System auf den neuesten Stand bringen.

F�r beide Installationsm�glichkeiten nehmen wir Python 2.1. Mit einem schnellen:

   vm-debian:~# apt-get install python

installieren wir uns die aktuelle Python-Version (2.1.3).

Wer seine locales noch nicht installiert hat sollte dies unbedingt mit "apt-get install locales" nachholen und dann als Standard locale zumindest "de_DE" w�hrend der Installation ausw�hlen.

B) Installation von ZOPE �ber den Debian Paketmanager

  1. Zope Server

    In der Debian woody wird ZOPE in der Version 2.5.1 gleich mitgeliefert. Ein Zope 2.6.1 woody backport kann �ber den DZUG Download Bereich heruntergeladen werden. Wer sich seinen ZOPE dennoch lieber aus den Sourcen bauen m�chte, kann gleich zu Punkt C) �bergehen.

    Wir installieren ZOPE mit:

        vm-debian:~# apt-get install zope
    

    Wir werden aufgefordert, einen ZOPE Administrator User anzulegen. Als Verschl�sselungsmechanismus k�nnen wir zwischen SHA, CRYPT und CLEARTEXT w�hlen. Ich nehme hier CRYPT (UNIX-style crypt Passwort).

    Haben wir das erledigt, wartet ZOPE auf Port 9673 auf Anfragen. Standardm�ssig horcht ZOPE auf Port 8080. Um Konflikte mir Proxy Ports zu vermeiden, wird der "Debian ZOPE" auf Port 9673 gesetzt. Das soll uns nicht weiter st�ren. Zur Not kann man den Port noch sp�ter �ndern, z.B. auf Port 80.

    Folgende Prozesse sollten nun aktiv sein:

        vm-debian:~# ps ax | grep zope
        3156 ?        S      0:00 /usr/bin/python /usr/sbin/zope-z2
        3157 ?        S      0:11 /usr/bin/python /usr/sbin/zope-z2
        3193 ?        S      0:00 /usr/bin/python /usr/sbin/zope-z2
    

    In unserem Browser k�nnen wir ZOPE z.B. �ber http://localhost:9673 erreichen bzw. von einem entfernten Rechner �ber die IP des Servers.

    Mit dem eben eingerichteten Administrations User loggen wir uns in das ZOPE Managment Interface (ZMI) �ber http://localhost:9673/manage/ ein.

    Das ZOPE ZMI begr�sst uns so:

    Das Passwort des Administrations User kann man folgendermassen �ndern:

        vm-debian:~# python /usr/lib/zope/zpasswd.py -u admin -p test /var/lib/zope/access
    

    oder �ber das ZMI im acl_users Folder.

    Der Paketmanager installiert ZOPE unter "/usr/lib/zope" und "/var/lib/zope". Das ZOPE Produktverzeichnis befindet sich unter "/usr/lib/zope/lib/python/Products".

    Mit "/etc/init.d/zope stop|start" k�nnen wir den ZOPE Server herunterfahren oder starten.

    Weitere Debian spezifische Dokumentation findet man unter "/usr/share/doc/zope".

  2. Postgres Unterst�tzung

    Wer noch keine lokale Postgres installiert hat, kann dies mit "apt-get install postgres" jetzt nachholen (default encoding ist LATIN1). Danach sollte auf dem System ein postmaster Prozess laufen. Wer auf eine Postgres zugreifen m�chte, die auf einem anderen Server installiert ist, braucht nat�rlich keine lokale Datenbank und kann diesen Schritt �berspringen.

    Wir installieren das Debian Paket zope-popyda. Es enth�lt das ZPoPyDA Prokukt und installiet gleich die richtige Python Postgres API mit:

        vm-debian:~# apt-get install zope-popyda
    

    War die Installtion erfolgreich, sollte sich im ZMI unter "/Control_Panel/Products" das Produkt "ZPoPyDA" befinden.

    Wir k�nnen jetzt �ber das ZMI eine "Z PoPy Database Connection" erstellen und eine Verbindung zu einer beliebigen Postgres-Datenbank herstellen. Sch�n!

  3. Sonstiges

    Weitere ZOPE Debian Pakete lassen sich mit "apt-cache search zope" ermitteln, so z.B. CMF (Zope Content Management Framework), WikiWikiWeb, ein Zope Buch und vieles mehr.

C) Installtion von ZOPE aus den Sourcen

  1. Zope Server

    Wer ZOPE aus den Source installiert sollte vorher mal einen Blick in die README.txt, sowie ins "doc" Verzeichnis werfern. Hier finden sich n�tzliche Informationen zu vielen Fragen.

    Wir erstellen einen neuen System User zope, der der Gruppe zope angeh�rt und sein home Verzeichnis unter /var/lib/zope hat. Unter diesem User soll unser Zope Server sp�ter laufen:

        vm-debian:~# groupadd zope
        vm-debian:~# useradd -g zope -d /var/lib/zope zope
        vm-debian:~# mkdir /var/lib/zope
        vm-debian:~# chown -R zope:zope /var/lib/zope
    

    Um Zope selbst bauen zu k�nnen, ben�tigen wir noch die python libraries, den gcc und die libc6. Wir installieren den ganzen Kram mit:

        vm-debian:~#  apt-get install python-dev gcc libc6-dev make
    

    Als user zope (su - zope) holen wir uns z.B. mit lynx von zope.org den neuesten ZOPE tar ball (derzeit Zope-2.5.1-src.tgz):

        lynx http://www.zope.org/Products/Zope/2.5.1/Zope-2.5.1-src.tgz/view
    

    entpacken ihn unter /var/lib/zope mit:

        zope:/var/lib/zope$ tar xvzf Zope-2.5.1-src.tgz
    

    und setzen einen symbolischen Link auf den aktuellen Zope-2.5.1-src:

        zope:/var/lib/zope$ ln -s Zope-2.5.1-src Zope
    

    Jetzt k�nnen wir die ZOPE Python Module kompilieren. Als User zope geben wir unter /var/lib/zope/Zope folgenden Befehlt ein (without_pcgi):

        zope:/var/lib/zope/Zope$ python wo_pcgi.py
    

    ZOPE ist so freundlich und generiert uns direkt einen ZOPE Administrationsuser mit Passwort. Alternative Installtionsmodi befinden sich in der Datei doc/INSTALL.txt.

    Wir starten den ZOPE mit "./start &" im ZOPE Sourcen Verzeichnis. ZOPE sollte sich so melden:

        zope:/var/lib/zope/Zope$ ./start &
        zope:~/Zope$ ------
        2002-06-15T22:31:03 INFO(0) ZODB Opening database for
        mounting: '142206320_1024180188.675469'
        ------
        2002-06-15T22:31:03 INFO(0) ZODB Mounted
        database '142206320_1024180188.675469' at /temp_folder
        ------
        2002-06-15T22:31:03 INFO(0) ZServer HTTP server 
        started at Sun Jun 16 00:31:03 2002
        Hostname: vm-debian.localguru.de
        Port: 8080
        ------
        2002-06-15T22:31:03 INFO(0) ZServer FTP server 
        started at Sun Jun 16 00:31:03 2002
        Hostname: vm-debian
        Port: 8021
    

    �ber http://localhost:8080/manage/ k�nnen wir auf ZOPEs Managment Interface zugreifen.

    Wer innerhalb des ZOPEs Probleme mit der Darstellung deutscher Umlaute hat, sollte am Ende des "start" Skripts noch die Zeile:

        -L "de_DE"
    

    hinzuf�gen (und nicht den Backslash nach Zeile -D "$@" \ vergessen).

  2. Postgres Unterst�tzung

    Wer noch keine lokale Postgres installiert hat, kann dies mit "apt-get install postgres" jetzt nachholen (default encoding ist LATIN1). Danach sollte auf dem System ein postmaster Prozess laufen. Wer auf eine Postgres zugreifen m�chte, die auf einem anderen Server installiert ist, braucht nat�rlich keine lokale Datenbank und kann diesen Schritt �berspringen.

    Wir installieren die Python Postgres API:

        vm-debian:~# apt-get install python2.1-popy
    

    Wir holen uns von der zope.org das ZPoPyDA Produkt, um ZOPE an eine Postgres anbinden zu k�nnen:

        http://www.zope.org/Members/tm/ZPoPyDA
    

    und entpacken es mit "tar xvzf ZPoPyDA-2.0.8.tar.gz" direkt im Zope Sourcen Verzeichnis. Danach sollte sich im Product Verzeichnis unter "/var/lib/zope/Zope/lib/python/Products/" der Ordner "ZPoPyDA" befinden.

    Wir stoppen ZOPE mit "./stop" und starten ihn erneut mit "./start &". Danach sollte sich im Product Management unter "/Control_Panel/Products" im ZMI das Produkt ZPoPyDA befinden.

  3. /etc/init.d/-Startscript

    Ein Beispiel f�r ein Startscript findet sich hier: http://www.zope.org/Members/howardhansen/debianstartupscript

  4. Init Manager und Emergency User

    Wer sich das Passwort des Initial Managers nicht notiert hat, kann mit python2.1 zpasswd.py inituser einen neuen Initial Manager definieren. Wenn im User-Ordner /acl_users nur h�chstens ein User existiert, wird der User aus dieser Datei angelegt und �berschreibt den alten User, sobald Zope neu gestartet wird.

    Wer sich einmal aus Versehen komplett ausgesperrt haben sollte, kann mit sich mit python2.1 zpasswd.py access einen sog. Emergency User namens superuser anlegen. Der Emergency User ist sehr m�chtig und gleichzeitig sehr schwach. Er wird durch die meisten Sicherheitskontrollen nicht eingeschr�nkt, kann allerdings nur eine Objektart erzeugen, n�mlich User.

C) MySQL Datenbankanbindung

Alternativ kann statt der Postgres nat�rlich auch eine MySQL Datenbank angebunden werden. Ein Zope MySQL Datenbank Adapter befindet sich im Debian Paket "zope-mysqlda" (Installation �ber den Packetmanager).

Das Python Interface f�r die Installationsmethode aus den Sourcen befindet sich im Debian Paket "python2.1-mysqldb". Der ZOPE MySQL Database Adapter befindet sich unter http://www.zope.org/Members/adustman/Products/ZMySQLDA

Fragen und freundliche Kritik an: schopen at medienlabor dot de

Have fun!

Geschrieben von mschopen . Letzte �nderung 26.04.2003 02:18.