You are here

Buildout-basiertes Zope2 (Plone) unter Debian/Ubuntu installieren

Ubuntu 8.04 Server / Plone 3.1.5.1

Voraussetzungen buildout:

$ sudo aptitude install gcc python2.4 python2.4-dev python-imaging python-elementtree

(Für Ubuntu Desktop muss noch zlib1g-dev installiert werden.)

Ergänzung von <a href="http://siarp.de/node/167" rel="nofollow">http://siarp.de/node/167</a> für Plone 3.3 unter Ubuntu Jaunty
========================================================================

Ubuntu Jaunty enthält zwar Python 2.4 aber keine Image Library (PIL) für 2.4.
Diese kann auch als Egg mittels buildout installiert werden [1]. Dafür braucht
man die Header-Dateien von Python, libjpeg und zlib [2]:
   
    sudo aptitude install build-essential python2.4-dev zlib1g-dev libjpeg62-dev

PIL gibt es zwar als offizielles Egg [3], doch nur die Version von der ZOPE-Site
"PILwoTk" funktioniert mir Plone. buildout.cfg sieht dann so aus:

    [buildout]
    ...
    find-links += <a href="http://download.zope.org/distribution/
" rel="nofollow">http://download.zope.org/distribution/
</a>    eggs += PILwoTk
    ...

Zusätzlich kann das Problem auftauchen, dass sich ZOPE beschwert, es habe keine
Berechtigung seine Eier abzulegen (Permission denied: ... .python-eggs). Wenn
Eggs entpackt werden müssen, werden diese standardmäßig in ~/.python-eggs
abgelegt, was aber durch den Benutzer zope nicht erlaubt ist. Dafür kann man
PYTHON_EGG_CACHE im Buildout neu setzen [4]:

    [instance]
    effective-user = zope
    environment-vars = PYTHON_EGG_CACHE ${buildout:directory}/var/.python-eggs
    ...


[1] <a href="http://www.veit-schiele.de/dienstleistungen/technische-dokumentation/plo...
" rel="nofollow">http://www.veit-schiele.de/dienstleistungen/technische-dokumentation/plo...
</a>[2] <a href="https://svn.infrae.com/buildout/silva/INSTALL.txt
" rel="nofollow">https://svn.infrae.com/buildout/silva/INSTALL.txt
</a>[3] <a href="http://pypi.python.org/pypi/PIL
" rel="nofollow">http://pypi.python.org/pypi/PIL
</a>[4] <a href="http://plone.org/documentation/error/permission-denied-python-eggs
" rel="nofollow">http://plone.org/documentation/error/permission-denied-python-eggs
</a>

Installation:

Ziel ist die systemweite Installation mit automatischem Start des Dienstes beim Booten. Zur Entwicklung und zum Testen reicht es, das ganze im Benutzer-Verzeichnis zu machen.

Zunächste wird der Code nach /opt kopiert:

$ sudo svn co SERVER/PFAD/ PROJEKTNAME

Dann der Buildout installiert:

$ cd PROJEKTNAME
$ sudo python2.4 bootstrap.py
$ sudo bin/buildout
$ sudo bin/instance fg

Läuft? Dann wollen wir das ganze noch dem User „zope“ zuordnen:

sudo adduser zope

In buildout.cfg:

[instance]
effective-user = zope

Das wird dann beim nächsten Aufruf von bin/buildout in zope.conf eingetragen. Beim Start durch sudo bin/instance start wird nun „zope“ als User des Prozesses verwendet.

Start beim Hochfahren:

$ sudo vim /etc/init.d/PROJEKTNAME

#!/bin/bash
cd /opt/PROJEKTNAME
bin/instance start

$ sudo chmod +x /etc/init.d/PROJEKTNAME
$ update-rc.d PROJEKTNAME defaults

Quelle: http://ubuntu.wordpress.com/2005/09/07/adding-a-startup-script-to-be-run-at-bootup/

Hinter Apache laufen lassen (Reverse Proxy):

$ sudo aptitude install apache2
$ sudo vim /etc/apache2/sites-available/PROJEKTNAME

NameVirtualHost *:80

<VirtualHost *:80>
        ServerName HOST
        DocumentRoot /var/www/
        RewriteEngine On

        <Proxy *>
                Order deny,allow
                Deny from all
                Allow from HOST
        </Proxy>

        RewriteEngine On
        RewriteRule ^(.*) http://localhost:8080/VirtualHostBase/http/HOST:80/PLONESITENAME/Virtual...$1 [L,P]

        CustomLog /var/log/apache2/access.log combined
</VirtualHost>

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod rewrite
$ sudo a2ensite PROJEKTNAME
$ sudo /etc/init.d/apache2 restart