Les Lecteurs Réseau Mappés
J'ai mappé un lecteur réseau sur un ordinateur de mon réseau domestique. Maintenant, je suis en train d'y accéder via le PHP, j'ai fait ce petit test rapide:
echo opendir('Z:\\');
Cela me donne:
Warning: opendir(Z:\) [function.opendir]: failed to open dir: No error in C:\wamp\www\webs\tester-function.php on line 3
Qu'ai-je fait de mal?
Je ne veux pas que mes utilisateurs en tapant le chemin d'accès UNC donc, il y a un moyen d'obtenir le chemin d'accès UNC pour eux et peut-être que ce sera le travail quand j'essaye d'y accéder? C'est possible dans Microsoft langues, mais je ne suis pas sûr de la façon d'obtenir de PHP pour ce faire - peut-être l'aide d'un cmd.exe de commande?
Veuillez noter que le lecteur mappé n'existe pas comme je peux le voir et je peux y accéder. Il ne semble pas être un problème de permissions que je suis en supposant qu'il serait de la plainte, SI elle pouvait accéder à ce lecteur...à droite?
Merci à tous pour toute l'aide
Ce script est exécuté par un php instance qui a été créée par un serveur web? Est ce serveur exécute en tant que service? Est ce service qui s'exécute en tant que
localsystem
ou utilisez-vous un autre compte? Pour le compte de qui ne vous de créer le lecteur de carte (votre propre ou pour le service du compte)?Oui, en php, instance créée par le serveur web. Oui, le serveur web est en cours d'exécution en tant que service. Oui comme
localsystem
. Ce lecteur mappé est créé par moi de ne pas le localsystem
. Cependant, la localsystem
les autorisations sont définies pour ce lecteur mappé automatiquement.OriginalL'auteur Abs | 2010-04-07
Vous devez vous connecter pour publier un commentaire.
La L'utilisateur a Contribué Notes afférentes aux fonctions opendir() avoir ceci:
dans ce cas, les droits de l'utilisateur semble en effet être la cause du problème, qui peut être différente de vos droits en fonction de ce que l'utilisateur PHP /le serveur web sont en cours d'exécution sur.
Comment avez-vous créer le lecteur de carte? La création du lecteur de carte de votre compte ne signifie pas que le serveur de processus/compte est le même mappage.
difficile de le dire. Peut-être essayez d'exécuter le service en vertu d'un compte d'utilisateur spécifique comme indiqué dans le rapport de commentaire, juste pour voir si elle fonctionne de cette façon?
Je vais essayer cela. @VolkerK - j'ai utilisé la normale de la carte de lecteur lecteur réseau assistant connecté en tant que moi "Abs-PC". Une fois que je l'ai fait, il y avait d'autres utilisateurs et groupes d'utilisateurs qui ont obtenu des autorisations de (tout au moins en lecture) dont l'un est le SYSTÈME, le service httpd arrive à courir en vertu de l'.
Jetez un oeil à msdn.microsoft.com/en-us/library/aa363908%28v=VS.85%29.aspx . Vous avez créé un lecteur réseau dans le MS-DOS de l'appareil d'espace de noms.
OriginalL'auteur Pekka 웃
simple, utilisation:
"\\\\server\\dir\\subfolder"
que le chemin d'accès. assurez-vous que vous pouvez accéder à la partie "serveur".fonctionne pour moi.
$arquivo = "\\\\server\\dir\\subfolder\\file.txt";
echo is_file($arquivo); //print 1.
OriginalL'auteur Guilherme
Ouvrir la console MMC Services par Démarrer -> Run (ou en utilisant la boîte de recherche, si vous utilisez Windows 7) et taper Services.msc et appuyez sur entrée.
Trouver le service Apache. N'ayant jamais utilisé WAMP, je n'ai aucune idée de ce qu'il a été nommé. Espérons qu'il commence par le mot "Apache", bien que, et donc ne devrait pas être trop dur à trouver.
Cliquez-droit sur le service et sélectionnez Propriétés.
Passer à l'onglet connexion.
Sélectionnez le bouton radio à côté de "compte" et entrez les informations d'identification du compte d'utilisateur que vous souhaitez exécuter Apache. Si c'est un réseau/domaine compte, utilisez le "DOMAINE\utilisateur" de la syntaxe ou de recherche, pour le compte de l'aide du bouton Parcourir).
Sélectionnez OK et redémarrer le service Apache.
Vérifiez que vos modifications travaillé par la recherche de la "httpd.exe" le processus dans le Gestionnaire des Tâches et vérifier pour voir quel nom d'utilisateur, le processus est en cours d'exécution en vertu de l'.
référence http://board.phpbuilder.com/board/showthread.php?t=10371870&page=2
Assurez-vous de comprendre les implications de sécurité de ce que vous faites en changeant l'utilisateur Apache est exécuté sous. Étant le compte système Local donne accès limité à des domaines importants de la structure du fichier et PAS d'accès au réseau. En changeant ce que vous pourriez être en donnant accès à des zones protégées et de tout accès au réseau de l'utilisateur. Cela signifie qu'une fois que quelqu'un hacks votre programme, ils auront accès à l'intégralité de votre ordinateur et de votre réseau (pour être en mesure de placer des fichiers). Si possible, essayez de trouver un moyen de le faire dans les limites de la sécurité est intégré à Apache et Windows.
OriginalL'auteur Ali Pourheidar