Mit Hilfe der durch die Apache Lounge bereitgestellten HTTPd Binaries ist es recht komfortabel möglich, den Apache Webserver unter Windows zu betreiben. Hier eine kurze Zusammenfassung der Installation auf einem meiner Laborsysteme.

Vorbereitung

  • Download Apache Binaries: http://www.apachelounge.com/download/ (32- oder 64-Bit Distribution verfügbar)
  • Download der benötigten Apache Module
  • Download & Installation der entsprechenden Microsoft Visual C++ Redist (je nach Apache-Distribution wird 32- oder 64-Bit-Version benötigt!)

Apache Setup

  • Apache httpd-2.x.x-winXX.zip entpacken und Inhalt zB. im Verzeichnis D:\Apache ablegen.
  • Das Apache-Verzeichnis in der httpd.conf anpassen. Folgende Direktiven müssen angepasst werden:
    • ServerRoot
    • DocumentRoot und <Directory> für das Apache-Standardverzeichnis
    • ScriptAlias und <Directory> für das /cgi-bin/ Verzeichnis
  • Testen, ob sich Apache überhaupt starten lässt:
    • In der Kommandozeile %APACHE_HOME%\bin\httpd.exe ausführen. Es sollten keine Fehler angezeigt werden.
    • Im Browser http://localhost/ öffnen. Es sollte „It works!“ angezeigt werden.
  • Apache als Windows Service Installieren:
    httpd.exe -k install -n „ApacheHTTPd“
  • Verknüpfung auf %APACHE_HOME%\bin\ApacheMonitor.exe im All Users Autostart ablegen.
  • Firewall-Regel für eingehenden Traffic für %APACHE_HOME%\bin\httpd.exe anlegen.

Apache Konfiguration

  • In der httpd.conf:
    • ServerAdmin und ServerName setzen
    • ggf. Logformat anpassen (s. auch Konfiguration Logrotation)
    • Spracheinstellungen (httpd-languages.conf), Fehlerseiten (httpd-multilang-errordoc.conf) und Autoindex (httpd-autoindex.conf) konfigurieren
    • Server Default-Werte (httpd-default.conf) anpassen:
      Timeout 60
      ServerTokens Prod
      ServerSignature Off
      HostnameLookups Off
  • Wenn nötig AcceptFilter deaktivieren (Bugfix Apache 2.4):
    AcceptFilter https none
    AcceptFilter http none

HTTPd Service Security

Aus Sicherheitsgründen sollte der Apache HTTPd Service unter einem Benutzer mit beschränkten Rechten laufen.