Apache als Dienst ignoriert Alias außerhalb doc_root
Matthias Jütte
- webserver
Hallo!
Ich möchte meinen Apache Server (unter Win2K) gerne als Dienst laufen lassen, um nicht immer das nervige Konsolenfenster in der Taskleiste zu haben.
Das Einrichten des Dienstes war auch kein Problem. Allerdings scheint er die httpd.conf nun etwas anders zu handhaben als vorher. Konkret:
Ich habe ein paar Aliase angelegt, die auf Verzeichnisse außerhalb des Datenverzeichnisses (c:\server\apache\htdocs) verweisen. Diese werden, wenn ich Apache in der Konsole starte, auch problemlos gehandhabt.
Lasse ich Apache nun als Dienst laufen, so ist das nicht mehr der Fall. Anscheinend akzeptiert er nur noch Aliase, die auf Ordner innerhalb des DR verweisen.
Das führe ich darauf zurück, daß der vom Installer angelegte Link zum Starten (per Konsole) die Parameter
-w -f "C:\server\Apache\conf\httpd.conf" -d "C:\server\Apache"
enthält. Diese dürften aber beim Starten des Dienstes per Befehl
c:\winnt\system32\net.exe start "Apache Server"
noch nicht berücksichtigt sein. Wenn ich mir die Eigenschaften des Dienstes anschaue gibt es da zwar ein Eingabefeld, aber irgendwie werden die Paramter a) nicht ausgeführt und b) nicht gespeichert.
Kann mir da jemand weiterhelfen?
Gruß
Matthias
hallo,
Lasse ich Apache nun als Dienst laufen, so [...] akzeptiert er nur noch Aliase, die auf Ordner innerhalb des DR verweisen.
Dann ist er aus irgendeinem Grund falsch gestartet.
Das führe ich darauf zurück, daß der vom Installer angelegte Link zum Starten (per Konsole) die Parameter
-w -f "C:\server\Apache\conf\httpd.conf" -d "C:\server\Apache"
Welche Apache-Version ist das und welcher Installer? Auf einer Windows-Kiste solltest du, wenn du ihn neu einrichtest, den Apache 2.0.50 nehmen, und da sieht die Verknüpfung, die im Startmenü angelegt wird, dann so aus:
C:\server\Apache\bin\Apache.exe -w -n "Apache2" -k start
Diese dürften aber beim Starten des Dienstes per Befehl
c:\winnt\system32\net.exe start "Apache Server"
noch nicht berücksichtigt sein
Doch, sofern der Dienst korrekt eingerichtet wurde (registry). Sinnvoller ist es, in der Diensteverwaltung einzustellen, ob und wie dein Apache gestartet werden soll.
Grüße aus Berlin
Christoph S.
Hallo!
D'oh! Da habe ich doch glatt die Version vergessen. Habe ihn mit apache_1.3.31-win32-x86-no_src.exe installiert. Daß 2.x mit vorkonfiguriertem Dienst kommt ist mir auch noch bekannt, hilft mir hier aber leider nicht weiter.
Zu 2.x kann ich nicht wechseln, weil <weiß ich nicht mehr>. Hatte glaube ich irgendwas mit den Skripten zu tun, mit denen ich arbeite.
Den Dienst habe ich per Kommandozeile eingerichtet und dann nachträglich versucht über die Diensteverwaltung zu konfigurieren. Aber ich finde wie gesagt keine Möglichkeit, Parameter zu übergeben.
Habe jetzt eben auch mal versucht, etwas aus deinem Beispiel abzuleiten, à la
C:\server\apache\apache.exe*-w -n "Apache Server" -k start -f "C:\server\Apache\conf\httpd.conf" -d "C:\server\Apache"
Startet zwar auch den Dienst, aber das Problem bleibt bestehen.
Mir ist noch aufgefallen, daß wenn ich "das Problem" habe beim Aufruf eines Alias ("localhost/alias") Fehlerseite 404 kommt, wenn ich aber eine Datei direkt anspreche ("localhost/alias/index.php") erhalte ich 403 - Forbidden. Hat das was zu sagen?
Gruß
Matthias
hi,
D'oh! Da habe ich doch glatt die Version vergessen. Habe ihn mit apache_1.3.31-win32-x86-no_src.exe installiert.
Diese EXE ist kein "Installer", beser fährst du mit http://ftp.plusline.de/ftp.apache.org/httpd/binaries/win32/apache_1.3.31-win32-x86-no_src.msi. Informationen bitte unter http://httpd.apache.org/docs/win_service.html nachlesen.
Grüße aus Berlin
Christoph S.