Netzlaufwerke einbinden

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Netzlaufwerke einbinden

Postby Meufel » 12. February 2014 13:34

Hallo zusammen,

ich programmiere gerade ein Intranet für unserere Firma. Als CMS benutze ich Joomla. XAMPP läuft in der Version 1.8.1 auf einer virtuellen Windows 7 Maschine.
Es funktioniert alles soweit ganz gut.
Jedoch möchte ich Dateien (Word, PDF, PowerPoint) einbinden, die sich bei einem Klick auf den Link mit dem jeweiligen Programm öffnen sollen. Die Dateien liegen auf einem anderen lokalen Rechner und sind per Netzlaufwerk eingebunden. Auf diesem Samba-Netzlaufwerk haben alle Mitarbeiter in der Firma Leserechte.
Wenn ich jetzt jedoch auf einen Link klicke erscheint folgende Meldung:
"Zugriff verweigert! Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.[..] Error 403"

Muss ich das Netzlaufwerk in irgendeiner Conf-Datei bekannt machen???
Wenn ja in welcher und wie???
Kenne mich damit leider gar nicht aus...
Für Hilfe wäre ich sehr dankbar. Es muss nicht sicher sein, da das Netzwerk komplett vom Internet getrennt ist, Hauptsache es läuft ;)

Viele Grüße
Meufel
Meufel
 
Posts: 2
Joined: 12. February 2014 13:26
XAMPP Version: 1.8.2-4
Operating System: Windows 7

Re: Netzlaufwerke einbinden

Postby Nobbie » 12. February 2014 16:43

Meufel wrote:Auf diesem Samba-Netzlaufwerk haben alle Mitarbeiter in der Firma Leserechte.


Das nützt gar nichts. Samba ist Samba, HTTP ist HTTP und die beiden haben nichts miteinander zu tun. Anscheinend willst Du ja mit einem Webserver (Apache) via HTTP zugreifen.

Meufel wrote:Wenn ich jetzt jedoch auf einen Link klicke erscheint folgende Meldung:
"Zugriff verweigert! Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.[..] Error 403"


Damit fängt kein Mensch etwas an. Was heißt denn "ein Link"? Was steht da drin? Bananen, Bahnhof, Fussballstadion, Butterbrot oder Ostereier??

Meufel wrote:Muss ich das Netzlaufwerk in irgendeiner Conf-Datei bekannt machen???


Ja, wahrscheinlich (hängt aber auch davon ab, wie der Link aussieht, aber das weiß hier ja keiner).

Meufel wrote:Wenn ja in welcher und wie???


Natürlich in der Konfigurationsdatei für Apache.

Meufel wrote:Kenne mich damit leider gar nicht aus...
Für Hilfe wäre ich sehr dankbar. Es muss nicht sicher sein, da das Netzwerk komplett vom Internet getrennt ist, Hauptsache es läuft ;)


Das ist ja nicht schlimm, dann suche Dir mal ein paar Tutorials über Apache zusammen und arbeite die durch. Gibt es zu tausenden im Internet. Eine fertige Allroundlösung wird das Forum nicht liefern, bei technischen Problemen und Fragen wird sich eine Lösung finden lassen, aber wir können nicht vollkommen fehlendes Wissen ersetzen. Da ist nicht die Idee solcher Foren. Zudem ist die Konfiguration von Apache ein ziemlich weitreichendes und komplexes Thema.

Da Du von "Firma" sprichst, sollte es dort jemanden geben, der Eure Netzwerke administriert, der sollte Dir helfen können.

P.S.: Je nachdem, was da genau passieren soll, geht das übrigens so gar nicht. Wenn es darauf hinaus laufen soll, dass die Mitarbeiter via Apache (resp. Joomla) auf zentrale Word Dokumente zugreifen sollen (mit Schreibrecht und der Möglichkeit, Änderungen vorzunehmen), dann brauchst Du nicht weiter zu machen, das geht gar nicht mit Apache. Das ist dann das falsche Werkzeug, so funktioniert HTTP nicht.
Nobbie
 
Posts: 6650
Joined: 09. March 2008 13:04

Re: Netzlaufwerke einbinden

Postby Meufel » 13. February 2014 15:47

Danke für die Antwort!

Bisher war es so geregelt, dass der Link so aussah: "file://[Name der Maschine mit den Dateien]/[weiterführender Dateipfad]/[Dateinname]"
Das funktioniert aber nur unter IE, weil der noch veraltete Sicherheiseinstellungen hat.

Mein Versuch, bei dem ich oben genannte Fehlermeldung erhielt sah dann so aus: "http://intranetneu/I:/[weiterführender Dateipfad]/[Dateinname]"
I: ist das Netzlaufwerk, das die Dateien enthät und auf intranetneu als Netzlaufwerk eingebunden ist.
Ich weiß jetzt aber, dass das keinen Sinn macht, da Windows-Freigaben nichts mit http zu tun haben.

Ich versuche jetzt mal ein paar Tutorials für Apache und Windows zu finden.
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.

Schönen Tag noch!
Meufel
 
Posts: 2
Joined: 12. February 2014 13:26
XAMPP Version: 1.8.2-4
Operating System: Windows 7

Re: Netzlaufwerke einbinden

Postby Nobbie » 13. February 2014 18:04

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.
Nobbie
 
Posts: 6650
Joined: 09. March 2008 13:04


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 6 guests