Meufel wrote:Würde hier evtl. WEBDAV sinn machen?
Die Dateien sollen nur angezeigt und evtl. gedruckt werden können, eine Änderung der Dateien soll auf diesem Wege nicht möglich sein.
WEBDAV "macht Sinn", wenn Dokumente "hochgeladen" werden sollen. Denn HTTP kennt zwar die Anforderung (bzw. "Request-Type" heißt das) PUT, das bedeutet ein Dokument vom Browser auf einen Server hochzuladen, aber es ist nicht vollständig in den Webservern (wie beispielsweise Apache) implementiert (und konserquenterweise auch nicht in den Browsern). Deswegen wurde mit WEBDAV eine Umgehung geschaffen.
Aber hier soll ja nichts hochgeladen werden, also kann man einfach die Dateien verlinken und der Client PC muss dann entscheiden, mit welchem Werkzeug die jeweils geöffnet werden sollen (und das bedeutet, dass jeder Request oder jeder Client nur eine Arbeitskopie des Dokuments ausgehändigt bekommt).
Je nachdem, wie Du nun diese Dokumente in HTML verlinken willst, brauchst Du entweder
a) einen sog, ALIAS
b) oder einen VirtualHost
Für beide Fälle musst Du aber auf dem physikalischen Netzlaufwerk (NAS oder was das ist) Apache die Zugriffsrechte einräumen, Apache läuft ja NUR auf dem einen Server und dort meistens mit der UserID "System" (das ist meistens ein User, der nicht so sehr viel darf). Berücksichtige das bei der Konfiguration und berücksichtige vor allen Dingen, dass Laufwerksbuchstaben in einem ganz anderen Kontext vergeben werden, das sind Buchstaben, die ein bestimmter User im Netzwerk nach dem Login an seine Workstation zur Verfügung gestellt bekommen - wenn Du das jetzt genau überlegst wirst Du bemerken, dass das also von User zu User verschieden sein kann und vor allem "weiß" Apache (und der System User des Servers) sowieso nichts davon. Du musst immer aus der Sicht von Apache denken, nicht aus der Sicht der einzelnen Clients (User im Windowsnetzwerk). Das ist das zentrale Problem.
D.h. Du musst im Windows Netzwerk sicherstellen, dass Apache auf diese Freigabe zugreifen kann (das ist eine reine Rechtevergabe in Windows, das hat noch NICHTS mit HTTP zu tun). Darüberhinaus muss man aber auch in Apache in der Konfiguration festlegen (diesmal aus Sicht von Apache), auf welche Verzeichnisse Apache zugreifen kann und darf und mit welchen sog. "Optionen" (bzw. "Options", da gibt es verschiedene). Das hat den Sinn, dass auch Apache auch schon an einer URL erkennen kann, dass der Anwender das sowieso nicht bekommen darf und Apache kann dann eine halbwegs kontrollierte Meldung dazu ausgeben. Wenn man das nur mit den WIndowsrechten (oder auch Linuxrechten), also im Prinzip auf Ebene des Betriebssystems des Servers, steuern würde, dann ist das aus Sicht von Apache unkontrolliert und er bekommt vom Betriebssystem die Datei nicht ausgeliefert, hat aber keine Möglichkeit, das kontrolliert selbst abzulehnen. Und das wird festgelegt in einem sog. "Directory Container", das fängt grundsätzlich mit "<Directory xxxxxxx>" an und hört ein paar Zeilen später mit "</Directory>" auf, dabei ist xxxxxx der Pfad oder Ordner, für den das gilt. In Deinem Fall wird so in der Art aussehen:
- Code: Select all
<Directory "//ServerOderNASName/Freigabename/Ordername">
wobei "ServerOderNASName" eben der Name des Servers oder NAS Laufwerk ist, wie er dort festgelegt wurde (beispielsweise QNAP210 oder so), der Freigabename ist selbstredend und genauso der Ordnername. Wenn die Dokumente also auf dem NAS QNAP210 liegen, dort in der Freigabe "Public" und dort im Ordner "www", dann sieht das so aus:
- Code: Select all
<Directory "//QNAP210/Public/www">
Wie Du siehst, ist da kein Laufwerksbuchstabe drin und das ist auch gut so, dieser Schreibweise nennt man auch UNC-Pfad. Der Versuch, das über (dynamisch zugeordnete) Buchstaben zu machen (also beispielsweise I:/www) geht meistens in die Hose, weil viele nicht verstehen, in welchem Kontext überhaupt I: vorhanden ist. Spätestens wenn ein 404er Fehler kommt, dann ist das genau das Problem, dass Apache das nicht findet. Und diesen Directory-Container musst Du in JEDEM Fall angeben, ob Du Dich für die ALIAS Lösung oder für einen VirtualHost eintscheidest, ist Dir freigestellt. Lies erst einmal ein wenig dazu um überhaupt mal reinzukommen, wie Apache funktioniert.