Apache

From Dietrich Blog (Strato)
Revision as of 20:08, 7 June 2007 by Dkracht (talk | contribs) (New page: = Web-Server Apache = == Einsatzzweck == Auf meinem Entwicklungssystem betreibe ich als Web-Server Apache. Die Einsatzzwecke sind: * Staging-System für meine Web-Sites, die ich dann zu m...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Web-Server Apache

Einsatzzweck

Auf meinem Entwicklungssystem betreibe ich als Web-Server Apache. Die Einsatzzwecke sind:

  • Staging-System für meine Web-Sites, die ich dann zu meinen Web-Hosting-Providern uploaden will
  • Als Trägersystem ("Application Server") für produktive Anwendnungen

Installation

  • Definitive Software Library ID: Apache
  • Version: 1.3.27
  • Betriebsystem: Windows 2000 Professional
  • Installationsordner: D:\Programme\Apache
  • Konfigurationsdateien: D:\Programme\Apache\conf\httpd.conf
  • Start: Als Service unter Windows 2000 unter dem Account "kracht"
  • Authentifizierung, Zusatzmodule,.....

NTFS-Filesystem

Wenn man den Apache-Webserver als Trägersystem für eine Anwendung benutzt, mit der man neue Seiten (neue Dateien) anlegt (Kandidaten: Content-Management, Knowledge-Management, konkretes Beispiel: TWiki), muss man sich gut überlegen, unter welchem Windows-Account Apache als Windows-Service laufen soll. Dieser Account wird dann im NTFS-Filesystem nämlicher der Owner der neu-erzeugten Dateien.

Standard-mäßig wird "Lokales Systemkonto" dafür abgeboten, was zur Folge hat, dass man unter seinem eigenen User-Account an so neu-erzeugte Dateien nicht so ohne weiteres heran kommt (Owner=SYSTEM). Wenn Apache auf einer User-Masine läuft, sollte man Apache auch unter dem User-Account laufen lassen. Das sollte das lokale User-Konto sein, wenn man (im Regelfall) ohne Windows-Domain-Anmeldung arbeitet ( User: .\Kracht) und es sollte das Windows-Domain-Konto sein, wenn man damit normalerweise als User arbeitet (User: domainname\username).

Unter meinem Windows 2000 hatte ich den Eindruck, dass die httpd.conf-Eintragungen:

  • User nobody
  • Group nobody

nichts bewirken.

Apache Authentifizierung

Zur Authentifizierung unter Apache dienen User-Id und Passwort. Diese werden in einer Datei gespeichert, wobei vom Passwort nur ein Hash-Code (MD5 oder SHA1) gespeichert wird. Diese Datei durch einen Konfigurationsparameter definiert:

  • Z.B. für TWiki: AuthUserFile d:/home/kracht/twiki/data/.htpasswd

Dieser Parameter kann in der globalen Apache-Konfigurationsdatei httpd.conf oder in einer lokalen Steuerdatei .htaccess gesetzt werden.

Der Zugriff auf Ordner und/oder bestimmte Dateien kann in Abhängigkeit von der Authentifizierung erlaubt oder verboten werden. Beispielsweise für TWiki:

<Files "edit">
		 require valid-user
</Files>
<Files "save">
		 require valid-user
</Files>
<Files "attach">
		 require valid-user
</Files>

Perl-Script-Ausführung als CGI

Test eines Perl-Scripts: [[1]]

Zur serverseitigen Ausführung von Perl-Scripts sind in der Apache-Konfigurationsdatei sind folgende Eintragungen vorzunehmen:

1. Aktivierung der Script-Ausführung für einen Ordner. Entweder mit der Direktive "ScriptAlias" oder mit Hilfe von "Options ExecCGI"

	 <Directory "D:/var/www/htdocs/twiki/bin/">
		  Options +ExecCGI
	 </Directory>

2. Perl-Script-Handler hinzufügen: Standard CGI

	 <Directory "D:/var/www/htdocs/twiki/bin/">
		  Options +ExecCGI
		  SetHandler cgi-script
	 </Directory>

3. Zuordnung des aufzurufenden Programms durch die Shebang-Zeile am Anfang eines jeden Scripts:

	 #!d:/Programme/cygwin/bin/perl -w

Perl-Script-Ausführung vermittels mod_perl

In der Apache-Konfigurationsdatei sind folgende Eintragungen vorzunehmen:

1. Aktivierung der Script-Ausführung für einen Ordner.

	 <Directory "D:/home/kracht/www/twiki/bin/">
		  Options +ExecCGI
	 </Directory>

2. Script-Handler hinzufügen: perl_mod

	 <Directory "D:/home/kracht/www/twiki/bin/">
		  Options +ExecCGI
		  SetHandler perl-script
		  PerlHandler Apache::Registry
	 </Directory>

Installation von mod_perl

mod_perl Version 1 wird für Apache 1.3.xx verwendet, mod_perl Version 2 ist für Apache 2.xx gedacht.
Traditionsgemäss muss man den Sourcecode kompilieren --- oder man besorgt sich eine Windows-Binary-Version.

http://perl.apache.org/docs/1.0/os/win32/install.html#PPM_Packages

mod_perl besteht aus einem Apache-Moul (mod_perl.so) und einem Perl-Paket (Apache::xyz). Das ladbare Apache-Modul wird in die Apache-Konfigurationsdatei httpd.conf eingetragen:

	LoadFile "D:/perl/bin/perl56.dll"
	LoadModule perl_module modules/mod_perl.so
	AddModule mod_perl.c

Das Perl-Package wird mit ppm wie folgt installiert:

	ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/mod_perl.ppd 

Installation von mod_dav

Zunächst muss man sich das Win32-Binary beschaffen; z.B. von:

Um die WebDAV-Unterstützung als Apache-Zusatzmodul zu installieren, sind folgende Eintragungen in der Apache-Konfigurations-Datei httpd.conf vorzunehmen:

	LoadModule dav_module modules/mod_dav.dll
	...
	AddModule mod_dav.c
	...
	DAVLockDB			 e:/var/db/DAVLock
	DAVMinTimeout	 600

Dann sind noch die für WebDAV freigegebenen Ordner zu definieren:

	<Directory "e:/var/www/htdocs/DAVdocs">
	DAV on
	AllowOverwrite AuthConfig
	AuthName "DAV restricted"
	AuthType Basic
	AuthUserFile e:/var/www/htdocs/twiki/data/.htpasswd
	<Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
		Require valid-user
	</Limit>
	<Directory>

-- Main.DietrichKracht - 29 Apr 2004