Apache/HTTP/Windows/Konsole: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== Apache als Konsolenanwendung ausführen == Normalerweise wird empfohlen, den Apache als Dienst zu verwenden, aber manchmal ist es einfacher, von der Kommandozeile aus zu arbeiten, insbesondere bei der anfänglichen Konfiguration und beim Testen. Um den Apache von der Kommandozeile aus als Konsolenanwendung zu starten, verwenden Sie den folgenden Befehl httpd.exe Der Apache wird ausgeführt und bleibt aktiv, bis er durch Drücken von Strg-C gestoppt…“ |
Keine Bearbeitungszusammenfassung |
||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Apache als Konsolenanwendung ausführen''' | |||
Normalerweise wird empfohlen, den Apache als Dienst zu verwenden, aber manchmal ist es einfacher, von der Kommandozeile aus zu arbeiten, insbesondere bei der anfänglichen Konfiguration und beim Testen | |||
== Beschreibung == | |||
Normalerweise wird empfohlen, den Apache als Dienst zu verwenden, aber manchmal ist es einfacher, von der Kommandozeile aus zu arbeiten, insbesondere bei der anfänglichen Konfiguration und beim Testen | |||
Um den Apache von der Kommandozeile aus als Konsolenanwendung zu starten, verwenden Sie den folgenden Befehl | Um den Apache von der Kommandozeile aus als Konsolenanwendung zu starten, verwenden Sie den folgenden Befehl | ||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe | |||
</syntaxhighlight> | |||
Der Apache wird ausgeführt und bleibt aktiv, bis er durch Drücken von Strg-C gestoppt wird | |||
Sie können Apache auch über die Verknüpfung Apache in der Konsole starten starten, die Sie während der Installation unter <tt>Startmenü --> Programme --> Apache HTTP Server</tt> 2 <tt>.4.xx --> Apache Server steuern</tt> platziert haben | |||
* Dadurch wird ein Konsolenfenster geöffnet und Apache darin gestartet | |||
Sie können Apache auch über die Verknüpfung Apache in der Konsole starten starten, die Sie während der Installation unter <tt>Startmenü --> Programme --> Apache HTTP Server</tt> 2 <tt>.4.xx --> Apache Server steuern</tt> platziert haben | * Wenn Sie Apache nicht als Dienst installiert haben, bleibt das Fenster sichtbar, bis Sie Apache durch Drücken von Strg-C in dem Konsolenfenster, in dem Apache läuft, beenden | ||
* Dadurch wird ein Konsolenfenster geöffnet und Apache darin gestartet | * Der Server beendet sich dann nach einigen Sekunden | ||
* Wenn Sie Apache nicht als Dienst installiert haben, bleibt das Fenster sichtbar, bis Sie Apache durch Drücken von Strg-C in dem Konsolenfenster, in dem Apache läuft, beenden | * Wenn Sie Apache jedoch als Dienst installiert haben, startet die Verknüpfung den Dienst | ||
* Der Server beendet sich dann nach einigen Sekunden | * Wenn der Apache-Dienst bereits läuft, bewirkt die Verknüpfung gar nichts | ||
* Wenn Sie Apache jedoch als Dienst installiert haben, startet die Verknüpfung den Dienst | |||
* Wenn der Apache-Dienst bereits läuft, bewirkt die Verknüpfung gar nichts | |||
Wenn der Apache als Dienst läuft, können Sie ihn stoppen, indem Sie ein weiteres Konsolenfenster öffnen und eingeben | Wenn der Apache als Dienst läuft, können Sie ihn stoppen, indem Sie ein weiteres Konsolenfenster öffnen und eingeben | ||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -k shutdown | |||
</syntaxhighlight> | |||
Die Ausführung als Dienst sollte der Ausführung in einem Konsolenfenster vorgezogen werden, da der Apache auf diese Weise alle laufenden Operationen ordnungsgemäß beenden und aufräumen kann | |||
Wenn der Server jedoch in einem Konsolenfenster läuft, können Sie ihn nur durch Drücken von Strg-C im selben Fenster anhalten | |||
Sie können den Apache auch anweisen, neu zu starten | |||
* Dadurch wird er gezwungen, die Konfigurationsdatei neu zu lesen | |||
Sie können den Apache auch anweisen, neu zu starten | * Alle laufenden Operationen können ohne Unterbrechung zu Ende geführt werden | ||
* Dadurch wird er gezwungen, die Konfigurationsdatei neu zu lesen | |||
* Alle laufenden Operationen können ohne Unterbrechung zu Ende geführt werden | |||
* Um den Apache neu zu starten, drücken Sie entweder Control-Break in dem Konsolenfenster, das Sie zum Starten des Apache verwendet haben, oder geben Sie | * Um den Apache neu zu starten, drücken Sie entweder Control-Break in dem Konsolenfenster, das Sie zum Starten des Apache verwendet haben, oder geben Sie | ||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -k Neustart | |||
</syntaxhighlight> | |||
wenn der Server als Dienst läuft | wenn der Server als Dienst läuft | ||
Hinweis für diejenigen, die mit der Unix-Version von Apache vertraut sind: Diese Befehle stellen eine Windows-Entsprechung zu <tt>kill -TERM ''pid''</tt> und <tt>kill -USR1 ''pid''</tt> dar | Hinweis für diejenigen, die mit der Unix-Version von Apache vertraut sind: Diese Befehle stellen eine Windows-Entsprechung zu <tt>kill -TERM ''pid''</tt> und <tt>kill -USR1 ''pid''</tt> dar | ||
* Die verwendete Kommandozeilenoption <tt>-k</tt> wurde in Anlehnung an den unter Unix verwendeten <tt>kill-Befehl</tt> gewählt | * Die verwendete Kommandozeilenoption <tt>-k</tt> wurde in Anlehnung an den unter Unix verwendeten <tt>kill-Befehl</tt> gewählt | ||
Wenn das Apache-Konsolenfenster sofort oder unerwartet nach dem Start geschlossen wird, öffnen Sie die Eingabeaufforderung über das Startmenü --> Programme | Wenn das Apache-Konsolenfenster sofort oder unerwartet nach dem Start geschlossen wird, öffnen Sie die Eingabeaufforderung über das Startmenü --> Programme | ||
* Wechseln Sie in den Ordner, in den Sie Apache installiert haben, geben Sie den Befehl <tt>httpd.exe</tt> ein, und lesen Sie die Fehlermeldung | * Wechseln Sie in den Ordner, in den Sie Apache installiert haben, geben Sie den Befehl <tt>httpd.exe</tt> ein, und lesen Sie die Fehlermeldung | ||
* Wechseln Sie dann in den Ordner logs, und überprüfen Sie die Datei <tt>error.log</tt> auf Konfigurationsfehler | * Wechseln Sie dann in den Ordner logs, und überprüfen Sie die Datei <tt>error.log</tt> auf Konfigurationsfehler | ||
* Angenommen, httpd wurde in C: <tt>\Programme\Apache Software Foundation\Apache2.4\</tt> installiert, dann können Sie Folgendes tun | * Angenommen, httpd wurde in C: <tt>\Programme\Apache Software Foundation\Apache2.4\</tt> installiert, dann können Sie Folgendes tun | ||
<syntaxhighlight lang="powershell" line> | |||
c: cd "\Programmdateien\Apache Software Foundation\Apache2.4\bin" httpd.exe | |||
</syntaxhighlight> | |||
Warten Sie dann, bis der Apache gestoppt wird, oder drücken Sie Control-C | |||
Warten Sie dann, bis der Apache gestoppt wird, oder drücken Sie Control-C | |||
* Geben Sie dann Folgendes ein | * Geben Sie dann Folgendes ein | ||
<syntaxhighlight lang="powershell" line> | |||
cd ..\logs mehr < error.log | |||
</syntaxhighlight> | |||
Bei der Arbeit mit dem Apache ist es wichtig zu wissen, wie er die Konfigurationsdatei finden kann | |||
* Sie können eine Konfigurationsdatei auf der Kommandozeile auf zwei Arten angeben | |||
Bei der Arbeit mit dem Apache ist es wichtig zu wissen, wie er die Konfigurationsdatei finden kann | * <tt>-f</tt> gibt einen absoluten oder relativen Pfad zu einer bestimmten Konfigurationsdatei an | ||
* Sie können eine Konfigurationsdatei auf der Kommandozeile auf zwei Arten angeben | |||
* <tt>-f</tt> gibt einen absoluten oder relativen Pfad zu einer bestimmten Konfigurationsdatei an | |||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -f "c:\my server files\anotherconfig.conf" | |||
</syntaxhighlight> | |||
oder | oder | ||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -f files\anotherconfig.conf | |||
</syntaxhighlight> | |||
<tt>-n</tt> gibt den installierten Apache-Dienst an, dessen Konfigurationsdatei verwendet werden soll | |||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -n "MeinDienstName" | httpd.exe -n "MeinDienstName" | ||
</syntaxhighlight> | |||
In beiden Fällen sollte das richtige [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot] in der Konfigurationsdatei festgelegt werden | In beiden Fällen sollte das richtige [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot] in der Konfigurationsdatei festgelegt werden | ||
Wenn Sie keine Konfigurationsdatei mit <tt>-f</tt> oder <tt>-n</tt> angeben, verwendet der Apache den in den Server einkompilierten Dateinamen, z.B. <tt>conf\httpd.conf</tt> | Wenn Sie keine Konfigurationsdatei mit <tt>-f</tt> oder <tt>-n</tt> angeben, verwendet der Apache den in den Server einkompilierten Dateinamen, z.B. <tt>conf\httpd.conf</tt> | ||
* Dieser eingebaute Pfad ist relativ zum Installationsverzeichnis | * Dieser eingebaute Pfad ist relativ zum Installationsverzeichnis | ||
* Sie können den kompilierten Dateinamen anhand eines als <tt>SERVER_CONFIG_FILE</tt> bezeichneten Wertes überprüfen, wenn Sie den Apache mit der Option <tt>-V</tt> aufrufen, etwa so | * Sie können den kompilierten Dateinamen anhand eines als <tt>SERVER_CONFIG_FILE</tt> bezeichneten Wertes überprüfen, wenn Sie den Apache mit der Option <tt>-V</tt> aufrufen, etwa so | ||
<syntaxhighlight lang="powershell" line> | |||
httpd.exe -V | |||
</syntaxhighlight> | |||
Der Apache versucht dann, sein [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot] zu bestimmen, indem er die folgenden Schritte in dieser Reihenfolge durchführt:# Eine [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot-Anweisung] über den Befehlszeilenschalter <tt>-C</tt> | |||
# Der Schalter <tt>-d</tt> in der Befehlszeile | |||
# Aktuelles Arbeitsverzeichnis | |||
# Ein Registrierungseintrag, der bei einer Binärinstallation erstellt wurde | |||
# Das Stammverzeichnis des Servers, das in den Server einkompiliert wurde | |||
* Dies ist standardmäßig <tt>/apache</tt> | |||
* Sie können dies überprüfen, indem Sie <tt>httpd.exe -V</tt> verwenden und nach einem Wert mit der Bezeichnung <tt>HTTPD_ROOT</tt> suchen | |||
Wenn Sie keine Binärinstallation durchgeführt haben, wird sich der Apache in einigen Fällen über den fehlenden Registrierungsschlüssel beschweren | |||
* Diese Warnung kann ignoriert werden, wenn der Server ansonsten seine Konfigurationsdatei finden konnte | |||
Wenn | Der Wert dieses Schlüssels ist das Verzeichnis [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot], das das Unterverzeichnis <tt>conf</tt> enthält | ||
* | * Wenn der Apache startet, liest er die Datei <tt>httpd.conf</tt> aus diesem Verzeichnis | ||
* Wenn diese Datei eine [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot-Anweisung]enthält, die ein anderes Verzeichnis als das aus dem obigen Registrierungsschlüssel ermittelte enthält, vergisst der Apache den Registrierungsschlüssel und verwendet das Verzeichnis aus der Konfigurationsdatei | |||
* Wenn Sie das Apache-Verzeichnis oder die Konfigurationsdateien an einen neuen Ort kopieren, müssen Sie unbedingt die [https://httpd.apache.org/docs/current/mod/core.html#serverroot ServerRoot-Anweisung] in der Datei <tt>httpd.conf</tt> aktualisieren, um den neuen Ort wiederzugeben | |||
[[Kategorie:Apache/HTTP/Windows]] | |||
Aktuelle Version vom 5. November 2024, 02:18 Uhr
Apache als Konsolenanwendung ausführen
Beschreibung
Normalerweise wird empfohlen, den Apache als Dienst zu verwenden, aber manchmal ist es einfacher, von der Kommandozeile aus zu arbeiten, insbesondere bei der anfänglichen Konfiguration und beim Testen
Um den Apache von der Kommandozeile aus als Konsolenanwendung zu starten, verwenden Sie den folgenden Befehl
httpd.exe
Der Apache wird ausgeführt und bleibt aktiv, bis er durch Drücken von Strg-C gestoppt wird
Sie können Apache auch über die Verknüpfung Apache in der Konsole starten starten, die Sie während der Installation unter Startmenü --> Programme --> Apache HTTP Server 2 .4.xx --> Apache Server steuern platziert haben
- Dadurch wird ein Konsolenfenster geöffnet und Apache darin gestartet
- Wenn Sie Apache nicht als Dienst installiert haben, bleibt das Fenster sichtbar, bis Sie Apache durch Drücken von Strg-C in dem Konsolenfenster, in dem Apache läuft, beenden
- Der Server beendet sich dann nach einigen Sekunden
- Wenn Sie Apache jedoch als Dienst installiert haben, startet die Verknüpfung den Dienst
- Wenn der Apache-Dienst bereits läuft, bewirkt die Verknüpfung gar nichts
Wenn der Apache als Dienst läuft, können Sie ihn stoppen, indem Sie ein weiteres Konsolenfenster öffnen und eingeben
httpd.exe -k shutdown
Die Ausführung als Dienst sollte der Ausführung in einem Konsolenfenster vorgezogen werden, da der Apache auf diese Weise alle laufenden Operationen ordnungsgemäß beenden und aufräumen kann
Wenn der Server jedoch in einem Konsolenfenster läuft, können Sie ihn nur durch Drücken von Strg-C im selben Fenster anhalten
Sie können den Apache auch anweisen, neu zu starten
- Dadurch wird er gezwungen, die Konfigurationsdatei neu zu lesen
- Alle laufenden Operationen können ohne Unterbrechung zu Ende geführt werden
- Um den Apache neu zu starten, drücken Sie entweder Control-Break in dem Konsolenfenster, das Sie zum Starten des Apache verwendet haben, oder geben Sie
httpd.exe -k Neustart
wenn der Server als Dienst läuft
Hinweis für diejenigen, die mit der Unix-Version von Apache vertraut sind: Diese Befehle stellen eine Windows-Entsprechung zu kill -TERM pid und kill -USR1 pid dar
- Die verwendete Kommandozeilenoption -k wurde in Anlehnung an den unter Unix verwendeten kill-Befehl gewählt
Wenn das Apache-Konsolenfenster sofort oder unerwartet nach dem Start geschlossen wird, öffnen Sie die Eingabeaufforderung über das Startmenü --> Programme
- Wechseln Sie in den Ordner, in den Sie Apache installiert haben, geben Sie den Befehl httpd.exe ein, und lesen Sie die Fehlermeldung
- Wechseln Sie dann in den Ordner logs, und überprüfen Sie die Datei error.log auf Konfigurationsfehler
- Angenommen, httpd wurde in C: \Programme\Apache Software Foundation\Apache2.4\ installiert, dann können Sie Folgendes tun
c: cd "\Programmdateien\Apache Software Foundation\Apache2.4\bin" httpd.exe
Warten Sie dann, bis der Apache gestoppt wird, oder drücken Sie Control-C
- Geben Sie dann Folgendes ein
cd ..\logs mehr < error.log
Bei der Arbeit mit dem Apache ist es wichtig zu wissen, wie er die Konfigurationsdatei finden kann
- Sie können eine Konfigurationsdatei auf der Kommandozeile auf zwei Arten angeben
- -f gibt einen absoluten oder relativen Pfad zu einer bestimmten Konfigurationsdatei an
httpd.exe -f "c:\my server files\anotherconfig.conf"
oder
httpd.exe -f files\anotherconfig.conf
-n gibt den installierten Apache-Dienst an, dessen Konfigurationsdatei verwendet werden soll
httpd.exe -n "MeinDienstName"
In beiden Fällen sollte das richtige ServerRoot in der Konfigurationsdatei festgelegt werden
Wenn Sie keine Konfigurationsdatei mit -f oder -n angeben, verwendet der Apache den in den Server einkompilierten Dateinamen, z.B. conf\httpd.conf
- Dieser eingebaute Pfad ist relativ zum Installationsverzeichnis
- Sie können den kompilierten Dateinamen anhand eines als SERVER_CONFIG_FILE bezeichneten Wertes überprüfen, wenn Sie den Apache mit der Option -V aufrufen, etwa so
httpd.exe -V
Der Apache versucht dann, sein ServerRoot zu bestimmen, indem er die folgenden Schritte in dieser Reihenfolge durchführt:# Eine ServerRoot-Anweisung über den Befehlszeilenschalter -C
- Der Schalter -d in der Befehlszeile
- Aktuelles Arbeitsverzeichnis
- Ein Registrierungseintrag, der bei einer Binärinstallation erstellt wurde
- Das Stammverzeichnis des Servers, das in den Server einkompiliert wurde
- Dies ist standardmäßig /apache
- Sie können dies überprüfen, indem Sie httpd.exe -V verwenden und nach einem Wert mit der Bezeichnung HTTPD_ROOT suchen
Wenn Sie keine Binärinstallation durchgeführt haben, wird sich der Apache in einigen Fällen über den fehlenden Registrierungsschlüssel beschweren
- Diese Warnung kann ignoriert werden, wenn der Server ansonsten seine Konfigurationsdatei finden konnte
Der Wert dieses Schlüssels ist das Verzeichnis ServerRoot, das das Unterverzeichnis conf enthält
- Wenn der Apache startet, liest er die Datei httpd.conf aus diesem Verzeichnis
- Wenn diese Datei eine ServerRoot-Anweisungenthält, die ein anderes Verzeichnis als das aus dem obigen Registrierungsschlüssel ermittelte enthält, vergisst der Apache den Registrierungsschlüssel und verwendet das Verzeichnis aus der Konfigurationsdatei
- Wenn Sie das Apache-Verzeichnis oder die Konfigurationsdateien an einen neuen Ort kopieren, müssen Sie unbedingt die ServerRoot-Anweisung in der Datei httpd.conf aktualisieren, um den neuen Ort wiederzugeben