Sie sind hier:   » ZMS home » News » Archiv » 01/05 ZMS 2.3

Durchführung des ZMS 2.3 Updates

Autor: Frank Hoffmann, Jürgen Klein, 06.01.2005

Seit der ZMS-Version 2.2 wird der Zeichensatz UTF-8 verwendet. Aus diesem Grund müssen beim Update auf ZMS2.2+/Zope2.7+ einige Dinge beachtet werden. In der Regel ist in den Templates und in den speziellen Objekten der ISO-Latin Code zu ersetzen durch HTML-Entities. Ferner sind einige CSS-Anpassungen, insbesondere in Bezug auf das ZMSTeaserelement, durchzuführen. Im folgenden eine kurze Liste der wichtigsten Schritten beim Update.

*Beispiel
Zope-Installation: /home/zope27
Hier können Produkte installiert werden, die dann in allen Instanzen zur Verfügung stehen
Zope-Instanz: /home/Zope
Hier können Produkte installiert werden, die dann in dieser Instanz zur Verfügung stehen

Anmerkung

Alternativ zu einem Update auf einem zweiten Rechner kann man auch ein zweites Zope auf dem gleichen Rechner installieren, das auf einem anderen Port läuft (z.B. 8090); dann muss beim Umschalten final nur der Port geändert werden

Hinweis

Bei Auslieferung der Seiten über einen Apache Webserver kann es Probleme mit dem mod_proxy-Modul von Apache geben.

Seit ZOPE 2.7 liefert ZOPE eine modifizierte 304-Meldung aus (Der Servercode 304 im HTTP-Log bedeutet Not Modified = Nicht geändert). Im Gegensatz zu fürheren Zope Versionen wird jetzt nur noch der Header einer Datei mit dieser Meldung ausgeliefert, aber nicht mehr - wie füher - die Datei selbst.
Das ist von ZOPE korrekt, wird aber vom Apache mod_proxy nicht richtig verarbeitet.
mod_proxy ersetzt trotz Servercode 304 'Not modified' die gesamte Datei. Da Zope aber nur den Header der Datei mit dem 304 Code 'Not Modified' und nicht die Datei selbst liefert, wird von mod_proxy eine nicht vollständige Datei in den Cache geschrieben. Logische Folge. Die Datei (Grafiken incl. Spacer etc.) kann nicht korrekt dargestellt werden.

Vorgehen

1.) Auskommentierung der 304-Meldung im ZOPE-Quellcode.
App/ImageFile.py: #RESPONSE.setStatus(304)
OFS/Image.py: # RESPONSE.setStatus(304)
Das hat zur Folge, dass bei einer Anfrage Zope die Datei jedesmal ausliefert. Die Seite selbst aber wird über den Apache bereits schnell ausgeliefert. Mit diesem Workaround muss ZOPE im Hintergrund also mehr arbeiten, ohne dass die Performance beeinträchtigt wird.

2.) Verwenden der Apache-Version 2.0. Mit dieser Apache-Version tritt das Problem nicht auf.