Ubuntu 8.04 Server / Plone 3.1.5.1
Voraussetzungen buildout:
(Für Ubuntu Desktop muss noch zlib1g-dev
installiert werden.)
========================================================================
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:
Dann der Buildout installiert:
$ sudo python2.4 bootstrap.py
$ sudo bin/buildout
$ sudo bin/instance fg
Läuft? Dann wollen wir das ganze noch dem User „zope“ zuordnen:
In buildout.cfg:
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:
#!/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 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