Apache/HTTP/Windows/Dienst

Aus Foxwiki

Apache als Dienst ausführen

Apache Service Monitor

Apache wird mit einem Dienstprogramm namens Apache Service Monitor ausgeliefert, mit dem Sie den Status aller installierten Apache-Dienste auf jedem Rechner in Ihrem Netzwerk sehen und verwalten können.

  • Um einen Apache-Dienst mit dem Monitor verwalten zu können, müssen Sie den Dienst zunächst installieren (entweder automatisch über die Installation oder manuell).

Installieren

Sie können den Apache als Windows NT-Dienst wie folgt über die Eingabeaufforderung im Unterverzeichnis Apache bin installieren

httpd.exe -k install

Wenn Sie den Namen des zu installierenden Dienstes angeben müssen, verwenden Sie den folgenden Befehl.

  • Sie müssen dies tun, wenn Sie mehrere verschiedene Apache-Dienste auf Ihrem Computer installiert haben.
  • Wenn Sie während der Installation einen Namen angeben, müssen Sie ihn auch bei jeder anderen -k Operation angeben.
httpd.exe -k install -n "MeinDienstName"

Wenn Sie speziell benannte Konfigurationsdateien für verschiedene Dienste benötigen, müssen Sie dies verwenden

httpd.exe -k install -n "MeinDienstName" -f "c:\files\my.conf"

Wenn Sie den ersten Befehl ohne spezielle Parameter außer -k install verwenden, wird der Dienst Apache2.4 genannt und die Konfiguration wird als conf\httpd.conf angenommen.

Entfernen

httpd.exe -k uninstall

Der spezifische Apache-Dienst, der deinstalliert werden soll, kann mithilfe von angegeben werden

httpd.exe -k uninstall -n "MeinDienstName"

Steuern

Das normale Starten, Neustarten und Beenden eines Apache-Dienstes erfolgt in der Regel über den Apache Service Monitor, mit Befehlen wie NET START Apache2.4 und NET STOP Apache2.4 oder über die normale Windows-Dienstverwaltung.

Bevor Sie den Apache als Dienst starten, sollten Sie die Konfigurationsdatei des Dienstes testen, indem Sie

httpd.exe -n "MeinDienstName" -t

Sie können einen Apache-Dienst auch über seine Kommandozeilenparameter steuern.

Um einen installierten Apache-Dienst zu starten, verwenden Sie den folgenden Befehl

httpd.exe -k start -n "MeinDienstName"

Um einen Apache-Dienst über die Befehlszeilenschalter zu stoppen, verwenden Sie Folgendes

httpd.exe -k stop -n "MeinDienstName"

oder

httpd.exe -k shutdown -n "MeinDienstName"

Sie können auch einen laufenden Dienst neu starten und ihn zwingen, seine Konfigurationsdatei neu einzulesen, indem Sie verwenden

httpd.exe -k restart -n "MeinDienstName"

Systembenutzer

Standardmäßig sind alle Apache-Dienste so registriert, dass sie unter dem Systembenutzer (dem LocalSystem-Konto ) laufen.

  • Das LocalSystem-Konto hat keine Berechtigungen für Ihr Netzwerk über einen Windows-gesicherten Mechanismus, einschließlich des Dateisystems, Named Pipes, DCOM oder Secure RPC.
  • Es hat jedoch lokal weitreichende Rechte.

Gewähren Sie dem LocalSystem-Konto niemals irgendwelche Netzwerkprivilegien! Wenn der Apache auf Netzwerkressourcen zugreifen muss, erstellen Sie ein separates Konto für den Apache (siehe unten).

Separates Konto

Es wird empfohlen, dass Benutzer ein separates Konto für die Ausführung von Apache-Diensten erstellen.

  • Wenn Sie über Apache auf Netzwerkressourcen zugreifen müssen, ist dies erforderlich.# Legen Sie ein normales Domänen-Benutzerkonto an, und merken Sie sich das Passwort.
  1. Gewähren Sie dem neu erstellten Benutzer die Berechtigung, sich als Dienst anzumelden und als Teil des Betriebssystems zu agieren.
  • Unter Windows NT 4.0 werden diese Berechtigungen über den Benutzer-Manager für Domänen gewährt, aber unter Windows 2000 und XP möchten Sie wahrscheinlich die Gruppenrichtlinie für die Verbreitung dieser Einstellungen verwenden.
  • Sie können diese Einstellungen auch manuell über das MMC-Snap-In Lokale Sicherheitsrichtlinie vornehmen.
  1. Bestätigen Sie, dass das erstellte Konto ein Mitglied der Gruppe Benutzer ist.
  2. Gewähren Sie dem Konto Lese- und Ausführungsrechte (RX) für alle Dokument- und Skriptordner( z.&nbsp:B.htdocs und cgi-bin)
  3. Erteilen Sie dem Konto Änderungsrechte (RWXD) für das Apache-Logs-Verzeichnis.
  4. Gewähren Sie dem Konto Lese- und Ausführungsrechte (RX) für die ausführbare Binärdatei httpd.exe.

Es ist in der Regel eine gute Praxis, dem Benutzer, der den Apache-Dienst ausführt, Lese- und Ausführungsrechte (RX) für das gesamte Apache2.4-Verzeichnis zu gewähren, mit Ausnahme des Unterverzeichnisses logs, für das der Benutzer mindestens Änderungsrechte (RWXD) haben muss.

Wenn Sie dem Konto erlauben, sich als Benutzer und als Dienst anzumelden, können Sie sich mit diesem Konto anmelden und testen, ob das Konto die Berechtigung hat, die Skripte auszuführen, die Webseiten zu lesen und Apache in einem Konsolenfenster zu starten.

  • Wenn dies funktioniert und Sie die oben genannten Schritte befolgt haben, sollte der Apache ohne Probleme als Dienst ausgeführt werden.
Fehlercode 2186

Der Fehlercode 2186 ist ein guter Hinweis darauf, dass Sie die "Anmelden als"-Konfiguration für den Dienst überprüfen müssen, da der Apache nicht auf eine erforderliche Netzwerkressource zugreifen kann.

  • Achten Sie auch auf die Berechtigungen des Benutzers, unter dem Apache ausgeführt werden soll.
Windows-Dienstesteuerungsmanager

Wenn Sie den Apache als Dienst starten, kann eine Fehlermeldung des Windows-Dienstesteuerungsmanagers erscheinen.

  • Wenn Sie z. B. versuchen, Apache über das Applet "Dienste" in der Windows-Systemsteuerung zu starten, erhalten Sie möglicherweise die folgende Meldung
Der Apache2.4-Dienst konnte auf nicht gestartet werden. Fehler 1067; Der Prozess wurde unerwartet beendet.

Sie erhalten diese allgemeine Fehlermeldung, wenn es ein Problem beim Starten des Apache-Dienstes gibt.

  • Um herauszufinden, was das Problem wirklich verursacht, sollten Sie die Anweisungen zum Ausführen von Apache für Windows über die Eingabeaufforderung befolgen.
Probleme mit dem Dienst

Wenn Sie Probleme mit dem Dienst haben, sollten Sie die folgenden Anweisungen befolgen, um zu versuchen, httpd.exe von einem Konsolenfenster aus zu starten, und die Fehler zu beheben, bevor Sie versuchen, ihn erneut als Dienst zu starten.