Apache/HTTP/Windows/Anpassen

Aus Foxwiki

Apache für Windows anpassen

Konfiguration

Apache wird über die Dateien im Unterverzeichnis conf konfiguriert
  • Es handelt sich dabei um dieselben Dateien, die auch zur Konfiguration der Unix-Version verwendet werden, aber für den Apache unter Windows gibt es ein paar andere Direktiven
  • Im Direktiven-Indexfinden Sie alle verfügbaren Direktiven

Standardkonfiguration

Die Standardkonfiguration der Quelldistribution erwartet, dass der Server in \Apache24 installiert wird
  • Dies kann bei der Kompilierung angepasst werden, aber es ist wichtig, dass das ServerRoot in httpd.conf mit dem tatsächlichen Installationsstamm übereinstimmt
  • Binärdistributionen können entweder das Standard-Installationsverzeichnis oder das Gesamtlayout der ursprünglichen Konfiguration anpassen

Hauptunterschiede

Hauptunterschiede beim Apache für Windows

MPM

  • Da der Apache für Windows multithreaded ist, verwendet er nicht wie der Apache unter Unix für jede Anfrage einen eigenen Prozess, sondern es laufen in der Regel nur zwei Apache-Prozesse: ein Elternprozess und ein Kindprozess, der die Anfragen bearbeitet
  • Innerhalb des untergeordneten Prozesses wird jede Anfrage von einem eigenen Thread bearbeitet

Prozessmanagement

Direktiven für das Prozessmanagement

MaxConnectionsPerChild Verbindungen eins Kindprozess
  • Steuert, wie viele Verbindungen ein einzelner Kindprozess bedient, bevor er beendet wird
  • Anders als unter Unix ist jedoch nicht sofort ein Ersatzprozess verfügbar

Verwenden Sie die Standardeinstellung MaxConnectionsPerChild 0

  • es sei denn, Sie werden angewiesen, das Verhalten zu ändern, um ein Speicherleck in Modulen von Drittanbietern oder prozessinternen Anwendungen zu beheben
ThreadsPerChild Threads pro Child
  • Dies ist die maximale Anzahl von Verbindungen, die der Server auf einmal verarbeiten kann
  • Stellen Sie also sicher, dass Sie diese Zahl hoch genug für Ihre Website einstellen, wenn Sie viele Zugriffe erhalten

Standardwert

  • ThreadsPerChild 150
  • Anpassen, um die größte zu erwartende Anzahl von gleichzeitigen Verbindungen zu berücksichtigen!
Warnung
Die Serverkonfigurationsdatei wird neu eingelesen, wenn ein neuer Kindprozess gestartet wird
  • Wenn Sie httpd.conf geändert haben, startet der neue Kindprozess möglicherweise nicht oder Sie erhalten unerwartete Ergebnisse

Dateinamen

Direktiven, die Dateinamen als Argumente akzeptieren, müssen Windows-Dateinamen anstelle von Unix-Dateinamen verwenden

  • Da der Apache jedoch Backslashes als "Escape-Zeichen"-Sequenz interpretieren kann, sollten Sie in Pfadnamen stets Schrägstriche und keine Backslashes verwenden

Groß- und Kleinschreibung

Während bei Dateinamen unter Windows in der Regel nicht zwischen Groß- und Kleinschreibung unterschieden wird, wird bei URLs intern immer noch zwischen Groß- und Kleinschreibung unterschieden, bevor sie auf das Dateisystem abgebildet werden

  • Die Direktiven <Location>, Alias und ProxyPass verwenden beispielsweise alle Argumente unter Berücksichtigung der Groß- und Kleinschreibung
  • Daher ist es besonders wichtig, die <Directory>-Direktive zu verwenden, wenn der Zugriff auf Inhalte im Dateisystem eingeschränkt werden soll, da diese Direktive für alle Inhalte in einem Verzeichnis gilt, unabhängig davon, wie auf sie zugegriffen wird

Wenn Sie sicherstellen wollen, dass in URLs nur Kleinbuchstaben verwendet werden, können Sie etwas wie folgt verwenden

RewriteEngine On
RewriteMap lowercase int:tolower
RewriteCond "%{REQUEST_URI}" "[A-Z]"
RewriteRule "(.*)" "${lowercase:$1}" [R,L]

Lese-/Schreibrechte

Im laufenden Betrieb benötigt der Apache nur Schreibzugriff auf das Verzeichnis logs und einen eventuell konfigurierten Cache-Verzeichnisbaum

  • Aufgrund der Groß-/Kleinschreibung und der kurzen Namen im 8.3-Format muss der Apache alle angegebenen Pfadnamen überprüfen
  • Das bedeutet, dass jedes Verzeichnis, das der Apache auswertet, vom Stammverzeichnis bis zum Verzeichnisblatt, Lese-, Listen- und Traverse-Verzeichnisrechte haben muss
  • Wenn Apache2.4 unter C:\Programme installiert ist, müssen das Stammverzeichnis, die Programme und Apache2.4 für den Apache sichtbar sein

Module laden

Apache für Windows ermöglicht, Module zur Laufzeit zu laden, ohne den Server neu zu kompilieren

  • Wenn der Apache normal kompiliert wird, installiert er eine Reihe von optionalen Modulen im Verzeichnis \Apache .4\modules
  • Um diese oder andere Module zu aktivieren, muss die LoadModule-Anweisungverwendet werden

Status-Modul

Um zum Beispiel das Status-Modul zu aktivieren, verwenden Sie die folgende Anweisung (zusätzlich zu den status-aktivierenden Direktiven in access.conf)

 LoadModule mod_status "modules/mod_status.so"

Informationen zur Erstellung von ladbaren Modulen sind ebenfalls verfügbar

ISAPI-Erweiterungen

  • Apache kann auch ISAPI-Erweiterungen (Internet Server Application Programming Interface) laden, wie sie von Microsoft IIS und anderen Windows-Servern verwendet werden. Weitere Informationen sind verfügbar
  • Beachten Sie, dass der Apache keineISAPI-Filter laden kann, und dass ISAPI-Handler mit einigen Microsoft-Funktionserweiterungen nicht funktionieren

CGI-Skripte

  • Bei der Ausführung von CGI-Skripten ist die Methode, die der Apache verwendet, um den Interpreter für das Skript zu finden, mit der Direktive ScriptInterpreterSourcekonfigurierbar
  • Da es unter Windows oft schwierig ist, Dateien mit Namen wie .htaccess zu verwalten, kann es nützlich sein, den Namen dieser Konfigurationsdatei pro Verzeichnis mit der Direktive AccessFilenamezu ändern

Windows-Ereignisprotokoll

Fehler während des Apache-Starts

Fehler während des Apache-Starts werden in das Windows-Ereignisprotokoll eingetragen, wenn der Apache unter Windows NT läuft

  • Dieser Mechanismus dient als Backup für Situationen, in denen der Apache noch nicht bereit ist, die Datei error.log zu verwenden

Sie können das Windows-Ereignisprotokoll mithilfe der Ereignisanzeige überprüfen

  • z. B. Start - Einstellungen - Systemsteuerung - Verwaltung - Ereignisanzeige