Deutsche Zope User Group
Gast 1 Benutzer online
DZUG-News

Zope unter Windows installieren, konfigurieren, absichern

Erkl�rt die Installation unter Windows detailliert. Beschreibt auch die Konfiguration eines Apache als vorgeschalteten Webserver.

ZOPE unter Windows installieren, konfigurieren, absichern

Vorwort

Es ist mitnichten notwendig, f�r ZOPE zwingend Linux oder ein anderes Unix einzusetzen. Zwar ist die Zahl der Linux-Anwender vermutlich am h�chsten, das liegt aber u. a. auch daran, dass ZOPE und die zugrundeliegende Sprache Python Bestandteil der g�ngigen Distributionen sind. Wer bereits Windows einsetzt, und keine Lust hat, sich mit Linux zu befassen, aber trotzdem alle Vorteile von ZOPE nutzen m�chte (und derer gibt es nicht wenige), der ist auch mit einem Windows-Rechner bestens bedient. In einer Produktivumgebung sollten allerdings immer alle verf�gbaren Windows-Updates eingespielt werden; am besten man automatisiert diesen Prozess; die aktuellen Windows-Versionen XP bzw. Server 2003 bieten daf�r ja genug M�glichkeiten. N�heres verr�t ein Blick in die Hilfe des Betriebssystems.

Welche Windows-Version?

Kurz gesagt: F�r ZOPE gen�gt als Betriebsplattform ein Windows XP "out of the box". Es gibt weder lizenzrechtliche noch praktische Gr�nde, zwingend Windows 2003 Server einzusetzen. Die von MS nur an OEM-Kunden gelieferte "Webserver Edition" des Server 2003 ist nichts anderes als ein Windows XP, das um den neuesten Internet Information Server (IIS) erg�nzt wurde. Es spricht auch nichts gegen ein Windows 2000 mit aktuellem Service-Pack; von Windows NT4 ist im Produktivbetrieb jedoch abzuraten, da MS den Support eingestellt hat, es also keine sicherheitsrelevanten Updates f�r dieses System mehr geben wird.

ZOPE besorgen

Die aktuelle ZOPE-Version f�r Windows kann man unter http://www.zope.org/Products/ herunterladen. Die Windows-Version tr�gt das K�rzel "win32" im Namen. W�hrend ich dieses Dokument verfasse, ist Zope 2.7 die aktuelle Version. Das Installationspaket enth�lt zun�chst einmal alles, was zum Betrieb von ZOPE ben�tigt wird. Es ist weder notwendig, die Sprache Python, noch irgendwelche Zusatzprodukte anderweitig herunterzuladen. Sp�ter l�sst sich ZOPE durch die Installation von Zusatzmodulen, sogenannten "Products" um Funktionen bereichern. Diese enthalten in aller Regel eine Installationsbeschreibung oder README-Datei; falls wirklich zus�tzliche Software f�r den Betrieb eines Products ben�tigt wird, so steht es dort.

ZOPE installieren

Die SETUP-Datei durch Doppelklick ausf�hren. Zope teilt seine Installation in zwei verschiedene Verzeichnisse auf. Das eigentliche Programm mit dem Webserver, der Sprache Python, und dem ZOPE-Kern m�chte das Setup-Programm standardm��ig gerne ins Verzeichnis c:\Programme\Zope installieren. Dem sollte man auch zustimmen. Als n�chstes stimmt man zu, dass die "Instance Home"-Files ebenfalls installiert werden sollen. Durch diesen Kniff - die Trennung zwischen Zope und der Zope-Instanz - lassen sich mehrere Instanzen von ZOPE auf demselben Rechner durchf�hren, ohne die redundant genutzten Programmteile mehrfach installieren zu m�ssen. 

F�r uns gen�gt eine Instanz. Wichtig dabei: Innerhalb des Verzeichnisses der Instanz landet die sp�tere Datenbank, die alle Nutzdaten enthalten wird. Das Verzeichnis der Instanz (Standard: C:\Zope-Instance) ist auch das, welches sp�ter regelm��ig gesichert werden muss (Backup). Daher empfiehlt sich ein seperater Speicherort mit reichlich Platz, zum Beispiel auf einem anderen Laufwerk. Die Frage, ob ZOPE als Win32-Service laufen soll, sollte man in jedem Fall mit "ja" beantworten. ZOPE l�sst sich dann wie jeder andere Systemdienst komfortabel unter Systemsteuerung/Verwaltung/Dienste starten, stoppen, deaktivieren usw., und es l�uft im sp�teren Produktivbetrieb auch ohne dass jemand auf dem Server angemeldet sein muss.

Als letztes fragt das SETUP-Programm nach dem Administratorpasswort. Dieses muss vergeben und gemerkt werden, kann aber sp�ter selbstverst�ndlich nach Belieben ge�ndert werden.

Testen, ob ZOPE funktioniert

Man startet einen Webbrowser und gibt als Adresse http://localhost:8080 ein. Wenn die Installation korrekt funktioniert hat, wird die "Zope Quick Start"-Seite angezeigt. Die Adresse enth�lt deshalb den Zusatz :8080, weil der Webserver von ZOPE (genannt Medusa) standardm��ig auf Port 8080 erreichbar ist. Dies l�sst sich aber �ndern, oder durch einen vorgeschalteten "richtigen" Webserver erg�nzen. Auf jeden Fall ist die :8080 eher unangenehm, zumal jede URL dadurch verl�ngert wird.

ZOPE auf Port 80 bringen

HTTP-Anfragen laufen normalerweise auf Port 80 ab. Es gibt mehrere Wege, ZOPE so einzustellen, dass dieser Port benutzt wird. Der Vorteil ist, dass der Port in diesem Fall nicht explizit angegeben werden muss; die o. g. Adresse hie�e dann also einfach http://localhost. An dieser Stelle f�hren mehrere Wege zum Ziel. Wichtig ist jedoch, dass kein weiterer Webserver auf Ihrem Rechner l�uft; falls sie also den IIS installiert haben, beenden Sie ihn oder deinstallieren sie ihn lieber gleich ganz.

  • ZOPE l�uft im Intranet oder einer Testumgebung, und der Rechner kann �ber das Internet nicht erreicht werden: Hier gen�gt es, dem ZOPE-Server den "richtigen" Port mitzuteilen. �ffnen Sie dazu die Datei ZOPE.CONF im Verzeichnis ETC ihrer Zope-Instanz mit einem Text-Editor. Suchen Sie den Begriff , und �ndern Sie den Wert hinter "address" von 8080 auf 80. Speichern Sie die Datei, und starten Sie den Zope-Dienst �ber die Systemsteuerung neu. Jetzt wird die URL http://localhost korrekt funktionieren - Ihr ZOPE l�uft jetzt auf Port 80, und Sie k�nnen mit dem Lesen dieses Textes an dieser Stelle aufh�ren.
  • ZOPE l�uft auf einem Produktivserver, der erh�hte Sicherheit erfordert, oder ist �ber das Internet erreichbar: Hier empfiehlt es sich, einen "richtigen" Webserver vorzuschalten. Mit diesem Thema besch�ftigt sich der n�chste Abschnitt.

ZOPE in Kombination mit Apache betreiben

Zwar ist der ZOPE-eigene Webserver Medusa durchaus nicht f�r Sicherheitsl�cken bekannt. Dennoch ziehen die meisten ZOPE-Anwender es vor, aus Sicherheitsgr�nden einen Webserver vorzuschalten. Auch wenn der in Windows enthaltene Internet Information Server (IIS) scheinbar die einfachste Variante darstellt, stellt er nicht die beste Wahl dar. Zwar l�sst sich der IIS mit einem Kniff zur Zusammenarbeit �berreden (n�heres hierzu unter http://zope.org/Members/hiperlogica/ASP404). Die bessere Variante ist jedoch der f�r seine Sicherheit und Stabilit�t bekannte Webserver Apache. Er bietet nicht nur ein stabiles und schnelles URL-Rewriting, sondern ist auch einfach zu konfigurieren, und nat�rlich kostenlos verf�gbar. Daher empfehle ich, den IIS entweder gar nicht erst zu installieren (Windows XP), oder zu deaktivieren, indem die betreffenden Systemdienste abgeschaltet werden (Windows 2003).

Die aktuelle Version des Apache (zum Zeitpunkt der Entstehung dieses Dokuments die Version 2.0.48) kann unter http://httpd.apache.org/download.cgi heruntergeladen werden. Ben�tigt wird das Paket "Win32 Binary (MSI Installer)". Zur Installation wird die Datei doppelt angeklickt. Die Fragen nach Network Domain (=DNS Suffix), Server Name (=DNS Name) und Admin-Email-Adresse sollten im Sinne des sp�teren Einsatzes beantwortet werden. Wichtig ist, dass das H�kchen bei "for All Users on Port 80 as a Service" gesetzt bleibt. Ansonsten k�nnen die Standard-Einstellungen des Installationsprogrammes verwendet werden. Wenn die Installation beendet ist, pr�fen Sie die Funktion des Apache, indem Sie im Browser die Seite http://localhost aufrufen. Wenn eine Seite mit der �berschrift "Es klappt! Der Apache-Webserver ist auf dieser Website installiert!" erscheint, hat alles korrekt funktioniert. Jetzt l�uft also ZOPE auf Port 8080, und Apache auf Port 80. Jetzt m�ssen die beiden einander nur noch kennenlernen.

ZOPE mit einem VHM versehen

Damit ZOPE mit dem Apache zurechtkommt, muss eine Kleinigkeit eingestellt werden. Es handelt sich um eine "fire-and-forget"-Einstellung, die wirklich nur ein einziges Mal vorgenommen werden muss; darum erkl�re ich hier nichts Genaueres dazu. 

Loggen Sie sich bitte in die Management-Oberfl�che von Zope ein. Dazu �ffnen Sie die Seite http://localhost:8080/manage im Browser. Als Benutzernamen verwenden sie "admin" (ohne Anf�hrungszeichen) und als Kennwort das, was Sie w�hrend der Installation von ZOPE vergeben haben. Im rechten oberen Bereich sehen Sie ein Klappmen� "Select type to add...". W�hlen Sie dort den Eintrag "Virtual Host Monster" aus. Im folgenden Fenster geben Sie als Id "vhm" (ohne Anf�hrungszeichen) ein, und klicken auf "Add". Das war's schon, Sie k�nnen den Browser wieder schlie�en.

Apache konfigurieren

Die Standard-Konfiguration des Apache finden Sie in der Datei c:\Programme\ApacheGroup\Apache2\conf\httpd.conf, die Sie mit einem Texteditor �ffnen. Folgende �nderungen m�ssen Sie durchf�hren:

  • Suchen Sie die Zeile "#LoadModule proxy_module..." und entfernen Sie die Raute (#) am Anfang der Zeile.
  • Suchen Sie die Zeile "#LoadModuly proxy_http_module..." und entfernen Sie auch hier die Raute.
  • Suchen Sie die Zeile "#LoadModule rewrite_module..." und entfernen Sie ebenfalls die Raute am Anfang der Zeile.
  • F�gen Sie am Ende der Datei httpd.conf folgende Zeilen an:


RewriteEngine On
RewriteRule ^(.*) http://127.0.0.1:8080/VirtualHostBase/http/XXXXXXXX:80//VirtualHostRoot/$1 [L,P]
ProxyVia On

  • Ersetzen Sie den Part XXXXXXXX durch den qualifizierten Domain-Namen ihres Webservers (z. B. zope.meinedomain.de oder intranet.meinefirma.local). Falls Sie keinen DNS-Namen vergeben haben, tragen Sie dort die IP-Adresse des Webservers direkt ein. Hinterher k�nnte die Zeile also so aussehen:

RewriteRule ^(.*) http://127.0.0.1:8080/VirtualHostBase/http/zope.meinedomain.de:80//VirtualHostRoot/$1 [L,P]

oder

RewriteRule ^(.*) http://127.0.0.1:8080/VirtualHostBase/http/192.168.0.40:80//VirtualHostRoot/$1 [L,P]

Speichern Sie die ge�nderte Konfigurationsdatei. Starten Sie jetzt den Apache-Service unter Systemsteuerung/Verwaltung/Dienste neu. Klappt der Neustart nicht (der Dienst kann nicht gestartet werden), so �berpr�fen Sie die o. g. �nderungen noch einmal. Im Ereignisprotokoll von Windows (Start/Ausf�hren/eventvwr/OK) finden Sie in der Regel n�here Fehlermeldungen.

Wenn der Neustart des Apache funktioniert, dann rufen Sie die Adresse http://localhost auf. Sie k�nnen nat�rlich auch gern den DNS-Namen des Servers verwenden, also z. B. http://zope.meinedomain.de. Die Zope-Quick-Start-Seite wird angezeigt - Ihr ZOPE ist also jetzt auf Port 80 erreichbar, und der Apache stellt sich sch�tzend vor Ihren ZOPE-Server. Noch allerdings ist ihr ZOPE ebenso unter Port 8080 erreichbar, was wir vermeiden m�ssen.

Nacharbeiten

�ffnen Sie die Datei zope.conf im Verzeichnis etc Ihrer Zope-Instanz. Suchen Sie nach "ip-address 127.0.0.1". Entfernen Sie auch hier die Raute (#) am Anfang der Zeile. Speichern Sie die Datei. Starten Sie den Zope-Dienst danach neu.

Als letztes sollten Sie Ihren neuen Webserver sch�tzen, indem Sie ihn mit einer Firewall versehen, und dort nur den Port 80 freigeben. Sie k�nnen auch die Windows-eigene Firewall verwenden; Sie finden Sie in den Einstellungen der Netzwerkverbindung (Systemsteuerung / Netzwerkverbindungen / [LAN]-Verbindung / Eigenschaften). W�hlen Sie dort die Registerkarte "Erweitert", und setzen Sie das H�kchen bei "Diesen Computer und das Netzwerk sch�tzen....". Klicken Sie dann weiter unten auf Einstellungen, und aktivieren Sie das H�kchen bei "Webserver (HTTP)", um Port 80 nach au�en freizugeben. Best�tigen Sie dann alle �nderungen mit OK.

Falls Ihr Server wirklich ans Internet angebunden sein soll, so empfiehlt es sich dringend, an gleicher Stelle auf der Registerkarte "Allgemein" das H�kchen bei "Client f�r MS-Netzwerke" und "Datei- und Druckfreigabe" zu entfernen. Zwar sollte die Windows-Firewall vor eingehenden Anfragen in dieser Richtung sch�tzen, aber sicher ist sicher.

 

Zuletzt ge�ndert: 23.02.2004

Fragen / Anregungen an Timo at timos-welt de

Geschrieben von Timo . Letzte �nderung 24.02.2004 08:38.