Christoph Schnauß: Apache-Konfiguration

Beitrag lesen

hallo Matze,

ich fasse mal beide postings zusammen:

Das Modul für Aliase ist j acschon per default geladen.

Es ist lediglich der "LoadModule"-Befehl dafür aktiviert. Ist das Modul selbst denn vorhanden? Bei deiner Konfiguration müßte die Moduldatei laut "ServerRoot" unter
  D:\Apache\Apache Group\Apache2\modules\mod_alias.so
zu finden sein.
Ich habe bisher nicht darauf hingewiesen, aber ein möglicher Fehler liegt auch in diesem Verzeichnisnamen. "Apache Group" ist wegen des Leerzeichens kein sehr günstiger Name, warum die Apache-Entwickler das als "default" vorsehen, weiß ich nicht.

Wenn ich über die URL http://myhost/error/404html darauf verweise wird diese angezeigt.

Das sollte auch so sein.

Klappt natürlich nur aus einer Zone heraus.

Nein. Das klappt grundsätzlich, sobald dein Webserver angesprochen wird. Dein DNS (ich weiß immer noch nicht, was du da unter Windows installiert hast) sorgt für die Namensauflösung, hat aber mit dem, was der Server anzeigt, sobald er angesprochen wurde, überhaupt nichts zu tun.

  1. wird SSL auch nicht verwendet im Hause. Ist ja Intranet und da ist SSL nicht notwendig.

Da hast du etwas falsch gelesen. Ich hatte nicht "SSL" geschrieben, sondern "SSI"  -  steht für Server Side Includes. Die originalen Apache-Fehlerseiten funktionieren nur mit Includes. Wenn du allerdings eigene Fehlerseiten designst, muß das nicht mehr so sein.

Ich war ja schon fast soweit mir den Quellcode des apache anzusehen.

Das schadet dir nicht, hilft dir aber bei der Konfiguration überhaupt nicht weiter. Wichtig ist eine etwas umfangreichere Kenntnis der Sourcen lediglich dann, wenn du ihn selbst kompilieren möchtest und dabei darauf achten mußt, daß die Module alle kompiliert werden.

Bei Angabe http://mydomain/keine.html die e nicht gibt, wird nur ein 404 Fehler gemeldet die Fehlerseite jedoch nicht angezeigt.

Und was bekommst du bei
  http://IPAdresse/keine.html?

Alias /error/ "d:/web/error/"

Die Fehlerseiten sind "Bestandteil" des Servers selbst und gehören eigentlich nicht ins "DocumentRoot", sondern ins "ServerRoot". Korrekt wäre also bei dir möglicherweise:
  Alias /error/ "d:/Apache/Apache Group/Apache2/error/"
Hier macht sich lediglich das Leerzeichen in "Apache Group" unter Umständen negativ bemerkbar.
Allerdings habe ich das mal durchgespielt und bei mir ebenfalls ein Verzeichnis "D:\web\error" angelegt - außerhalb von "DocumentRoot" (das ist bei mir "I:/root") und "ServerRoot". Mit der von mir bereits genannten Konfiguration bekomme ich meine eigene 404-Fehlerseite trotzdem, was auch einleuchtend ist, da ein "Alias" eben gerade diese Aufgabe hat, etwas ins "DocumentRoot" oder ins "ServerRoot" zu integrieren.

<Directory "d:/web/error/">
  AllowOverride None
  Options IncludesNoExec
  AddOutputFilter Includes html
  AddHandler type-map var
  Order allow,deny
  Allow from all
  LanguagePriority en de es fr it nl sv
  ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 404 /error/404.html

Wie bereits angeführt, funktioniert genau diese Angabe bei mir völlig problemlos.
Mehr kann ich dir dazu nicht mehr sagen.

Die Fehler aus dem error log:

[Sun Jul 20 14:17:35 2003] [error] [client 80.145.79.89] File does not exist: D:/WEB/keine.html

Das ist korrekt.

Die access.log:
80.145.79.89 - - [20/Jul/2003:14:16:25 +0100] "GET /error/404.html HTTP/1.1" 200 234

Das ist der (erfolgreiche) Aufruf über http://myhost/error/404.html. Nur ist das keine lokale IP-Adresse, aber du hast sie ja hier hoffentlich gefälscht.

80.145.79.89 - - [20/Jul/2003:14:16:32 +0100] "GET /keine.html HTTP/1.1" 404 14

Auch das ist korrekt und hätte dir eigentlich deine Fehlerseite bringen müssen. Zum Vergleich  -  so sieht das bei mir aus:
  pc1 - - [20/Jul/2003:15:40:06 +0200] "GET /keine.htm HTTP/1.1" 404 8467

Ich habe dir jetzt alles gesagt, was ich zu diesem Thema beitragen kann.

Grüße aus Berlin

Christoph S.