Apache
Contents
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
- Mein WikiWikiWeb für das Knowledge-Management: TWiki
- Meine Link-Verwaltung PhpLinks
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