hi Michael,
Mache Dir eine Kopie Deiner httpd.conf unter Windows, entferne sämtliche Laufwerksbuchstaben, speichere sie und starte mit dieser Datei den Apache neu.
Ich kenne den möglichen Effekt, den du wohl meinst (funktioniert bloß bei mir nicht). Für mich selbst (was für andere nicht im selben Maß gelten muß) ist es sinnvoller, die Laufwerksbuchstaben beizubehalten, da ServerRoot, DocumentRoot und virtuelle hosts auf jeweils unterschiedlichen Partitionen bzw. Platten liegen. Konkret:
ServerRoot "D:/Apache"
DocumentRoot "I:/root"
Ich kann völlig problemlos auch
ServerRoot "/Apache"
angeben (also ohne Laufwerksbuchstabe). Was allerdings nicht funktioniert (brauche ich auch nicht erklären), ist
ServerRoot "/"
Falls ich _dann_ aber auch noch
DocumentRoot "/root"
schreibe, sucht er natürlich auf D: nach einem Verzeichnis "root" und findet es nicht, weil es das nicht gibt. Liegen alle benötigten Verzeichnisse auf einer Partition, ist die Angabe eines Laufwerksbuchstabens in der Tat uninteressant und allenfalls ein Zugeständnis an Lesegewohnheiten.
Vermutlich wirst Du nach wenigen Minuten begriffen haben, wieso es egal ist, daß es unter Windows nicht _ein_ "Root-Verzeichnis" gibt (sondern eines pro Laufwerk)
In der Klammer formulierst du das Entscheidende, was übrigens auch den Hintergrund für meine Anmerkung gab.
und was der Apache aus solchen Pfaden macht (nämlich das Naheliegende).
Vermutlich ist mir das bereits seit ein paar Jahren ziemlich klar, und wenn ich mich richtig erinnere, verdanke ich die entsprechenden Hinweise dem Forum.
Probiere es aus, statt auf Deiner falschen Aussage zu beharren.
Du wirst mir zugestehen, daß ich bereits sehr vieles ausprobiert haben dürfte. Allerdings wird mir erst durch das, was du in der Klammer eben formuliert hattest, klar, worauf Henner wohl insistiert hat: Sofern alles auf einer Partition liegt, wäre meine Aussage tatsächlich zweifelhaft - wenngleich auch noch lange keine "bewußte Falschaussage" oder gar "Lüge". Wenn ich bei der oben angegebenen Konstruktion (D: als Installationsort des Apache)
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
vorgebe, bekomme ich trotz vorhandenen Alias für D: tatsächlich einen Error 403, falls ich auf den Alias zugreifen möchte, obwohl in der httpd.conf zusätzlich eben
Alias /programme "D:"
<Directory "D:">
Options +Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
steht. Wenn ich nun (unsinnigerweise) <Directory /> folgendermaßen vollknalle:
<Directory />
Options Indexes FollowSymLinks MultiViews IncludesNoExec ExecCGI
AddOutputFilter Includes html
AllowOverride None
Order allow,deny
Allow from all
</Directory>
bekomme ich wieder das Verzeichnislisting (da ist - bei mir - noch wesentlich mehr enthalten als bloß das bißchen Apache) und ich brauche eigentlich gar keinen Alias mehr extra.
ABER: trotz
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
ist mein DocumentRoot auch ohne Alias für Laufwerk I: zugänglich, einschließlich Verzeichnislisting (das sind ein paar), und gleiches gilt für diverse virtuelle hosts auf Laufwerk H:. Selbst dann, wenn ich nicht nchmals gesondert
<Directory "I:/root">
...
</Directory>
festlege. Selbstverständlich bekomme ich auch C: vollständig gelistet. "Apache tut das Naheliegende" hast du formuliert, Henner meinte wohl das gleiche mit dem Insistieren darauf, daß er Pfade "interpretiert". Das "Naheliegende" bedeutet bei meiner Konstruktion: <Directory /> meint Laufwerk D:, aber _ausschließlich_ dieses Laufwerk, das das "root-Laufwerk" für die ausführende Datei apache.exe ist. _Alle anderen_ vorhandenen Laufwerke bleiben davon völlig unberührt.
Insofern ist meine Aussage also durchaus nicht "falsch", sondern allenfalls "nicht genug belegt".
Zu dieser Ausprobiererei war ich übrigens erst ab Apache 2.0.x gezwungen, mit 1.3.x war das (unter Windows) irrelevant.
Ich hoffe, du liest jetzt
Unter UNIX ist / das Wurzelverzeichnis, root. Ein "root" in vergleichbarem Sinn existiert für Windows-Systeme nicht.
Das hatten wir schon festgestellt. Und ebenso, dass es uninteressant ist
Daß dies uninteressant sei, hattest du festgestellt, ich nicht.
dann hole dies sofort nach.
nochmals nach, und bittest mich nicht erneut, die zitierte Feststellung nachzuholen.
Die Apache Group ist weitaus weniger dumm, als Du ihr unterstellst.
bitte, Michael: solche Sätze hast _du_ doch wirklich nicht nötig.
Grüße aus Berlin
Christoph S.