Skip to main content
siarp.de

## You are here

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

7. September 2008 - 14:53 — Martin

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