Lesen einer Datei auf einem Netzwerk-Laufwerk
Mir läuft Xampp auf einem Windows Server ; Apache läuft als Dienst mit einem lokalen Konto.
Auf diesem server, ein Netzwerk-share ist gemountet als X: mit spezifischen Anmeldeinformationen.
Ich für den Zugriff auf Dateien, die sich auf X: und führen Sie den folgenden code
<?php
echo shell_exec("whoami");
fopen('X:\\text.txt',"r");
?>
bekommen und
theservername\thelocaluser
Warning: fopen(X:\text.txt) [function.fopen]: failed to open stream: No such file or directory
Ich habe versucht zu laufen, Apache nicht als Dienst, sondern direkt durch starten httpd.exe ...
und der code funktionierte.
Ich kann nicht sehen, was bewirkt, dass der Unterschied zwischen den service und die Anwendung und wie es funktioniert.
windows-Netzwerk-Treiber sind pro Benutzer. es sei denn, Sie haben zugeordnet, die X: - Laufwerk unter dem Konto, dass xampp läuft, kann es nicht sein, ein brauchbares Laufwerk.
Hi, danke für deine Antwort. Ich melden Sie sich auf Windows als der Benutzer ausführen, Xampp aber mount x: mit einem anderen Konto.
Hi, danke für deine Antwort. Ich melden Sie sich auf Windows als der Benutzer ausführen, Xampp aber mount x: mit einem anderen Konto.
InformationsquelleAutor user1985014 | 2013-01-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist nicht in der Lage, dies zu tun mit einem Laufwerksbuchstaben, wie Netzwerk zugeordnete Laufwerke sind nur für einen einzelnen Benutzer und kann so nicht verwendet werden, die von Diensten (auch wenn Sie montieren Sie ihn für den betreffenden Benutzer).
Was Sie tun können, stattdessen verwenden Sie den UNC-Pfad direkt ein, zum Beispiel:
Beachten Sie jedoch, dass es ein paar Probleme mit dem PHP-filesystem-Zugriff für UNC-Pfade. Ein Beispiel ist ein bug, den ich eingereicht imagettftext, aber es gibt auch Probleme mit
file_exists
undis_writeable
. Ich habe nicht gemeldet, die letzteren, weil, wie Sie sehen können, mein lang bestehender Fehler mitimagettftext
, was ist der Punkt.Es kann, aber Sie müssen den Dienst so konfigurieren, verwenden Sie das richtige Konto. Ich habe nicht gearbeitet mit Apache auf Windows seit Jahren, aber IIS tut dies sehr leicht pro Anwendungspool.
Also, Wenn ich kann nicht laufen Apache als Benutzer die Rechte zum Zugriff auf die Freigabe, ich bin stecken ?
Richtig. Aber es gibt keinen Grund Sie können nicht ändern, die Benutzer für den Apache-service, oder einen neuen Benutzer hinzufügen, der Zugriff auf die Freigabe.
InformationsquelleAutor Rudi Visser
Netzwerkfreigaben sollten Sie UNC-Namen verwenden: "//server/Freigabe/Verzeichnis/Datei.extern"
Wenn Sie die IP oder den Hostnamen sollte es funktionieren:
InformationsquelleAutor Lawrence Cherone