Apache HTTPD

Der Server Apache HTTPD kann vor allem als HTTP-Frontend von komplexeren Web-Sites verwendet werden. HTTP-Angebote aus mehreren Quellen können so zum einer einheitlichen Zugriff kombiniert werden, bei bedarf auf mehrere Rechner verteilt.

Die Informationen beziehen sich auf Apache 2.2.

Referenz auf interne Web-Server#

ProxyPass /path/ http://localhost:8080/path/
ProxyPass /other-path/ http://localhost:8081/other-path/

Erklärung: Links steht der in der Anfrage zu ersetzende Pfad /path/, der auf '/' endet. Die Endung ist wichtig, damit am Pfad keine doppelten '/' auftreten. Es ist sinnvoll den internen Pfad genauso zu benennen wie den externen, da viele Web-Applikationen absolute Links im HTML-Code herausgeben.

Header#

Durch reines Ersetzen der Anfrage würden die Localhost-URLs mit raus gegeben werden, zum Beispiel bei Redirects. Daher sind Rückwärtsersetzungen sinnvoll:
RedirectEngine On
ProxyPass /path/ http://localhost:8080/path/
ProxyPassReverse /path/ http://localhost:8080/path/

Erklärung: In den Headern werden die Localhost-Adressen wieder durch die Adressen der original Anfragen zurück ersetzt, daher auch 'Reverse'.

Zusätzlich können die original Domain-Angaben mit durchgereicht werden, sodass in der Software nicht speziell eine Domain konfiguriert werden braucht:

ProxyPreserveHost On

Redirect#

Umleiten des Root-Directory:
RedirectMatch ^/$ http://www.intersult.com/intersult/

WebDAV#

Der Apache kann auch als WebDAV-Server konfiguriert werden. Dies kann sogar von Windows 7 (eventuell auch frühere Versionen) als Netzwerk-Laufwerk konfiguriert werden.

Dazu wird in der httpd.conf folgende Konfiguration eingetragen:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
LoadModule auth_digest_module modules/mod_auth_digest.so

DavLockDB "C:/Java/dav/DavLock"

Alias /dav "C:/Java/dav/data"

<Directory "C:/Java/dav/data">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

<Location /dav>
    Dav On
    AuthType Digest
    AuthName WebDAV
    AuthDigestDomain /dav/ http://localhost/dav/
    AuthDigestProvider file
    AuthUserFile "C:/Java/dav/user.passwd"
    <LimitExcept OPTIONS>
        Require valid-user
    </LimitExcept>
</Location>

Die Verzeichnisse C:/Java/dav und C:/Java/data werden per mkdir angelegt. Die Datei user.passwd wird mit touch angelegt, Benutzer werden eingetragen mit:

htdigest C:\Java\dav\user.passwd WebDAV <username>

Server Status#

Wenn das Modul mod_status.so eingefügt wird, kann ein Serverstatus abgerufen werden. Dazu wird innerhalb eines VirtualHost ein Location-Eintrag vorgenommen:
	<Location /server-status>
		SetHandler server-status
		Order Deny,Allow
		Deny from all
		Allow from all

		AuthType Basic
		AuthName "Restricted Files"
		AuthBasicProvider file
		AuthUserFile "conf/user.passwd"
		Require user admin
	</Location>

Hinweis: Im Beispiel ist ein Login mit Passwortschutz konfiguriert. Die Datei user.passwd kann mit dem mitgelieferten Befehl htpasswd erstellt und bearbeitet werden.

PHP installieren#

Ein aktuelles PHP-Zip kann heruntergeladen und innerhalb des apache/php entpackt werden. In der httpd.conf braucht man folgende Einträge:
LoadModule php7_module php/php7apache2_4.dll
PHPIniDir php
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html

Fragen und Antworten#

MSVCR110.dll fehlt#

Das Visual C++ Redistributable for Visual Studio 2012 installieren.

Bei Windows 8 kann dies unter Umständen nicht klappen. Dort können vier Dateien msvc*110.dll manuell nach C:\Windows\system32 kopiert werden. Das geht allerdings nur, wenn die Benutzerkontensteuerung abgeschaltet wird.