opendir() sur server distant / droit apache [RESOLU] - PHP - Programmation
Marsh Posté le 24-08-2010 à 13:16:22
Bonjour,
Si vous êtes sous Windows, vous pouvez très bien créer un partage et faire pointer votre répertoire distant vers un lecteur (par ex: \\IP\mon_repertoire -> Z:\) et donc accéder au lecteur Z en php.
Autre solution:
Il faut faire attention au slash qu'il faut doubler en PHP dans les chaines.
Donc soit vous écrivez:
'\\IP\partage' soit "\\\\IP\\partage".
Marsh Posté le 24-08-2010 à 13:44:18
Merci de votre réponse.
Ce n'est pas un problème de slash (le code que j'ai donné n'est exactement celui utilisé, il y a prise du chemin dans un fichier, report dans une variable... j'ai simplifié)
Par contre je suis très intéressé pour échanger le nom du répertoire distant par un lecteur mais je ne sais pas comment faire. Pouvez-vous m'indiquez la marche à suivre?
Mille Merci
Marsh Posté le 24-08-2010 à 15:13:24
Clic droit sur le partage (sur le serveur qui exécute le script, pas celui où il y a le partage !), Connecter un lecteur réseau.
Marsh Posté le 24-08-2010 à 15:16:19
merci, j'essaie ça tout à l'heure
Marsh Posté le 24-08-2010 à 16:22:57
Le lecteur reseau ne résout pas le problème.
merci quand même.
Vous avez d'autres idées???
Marsh Posté le 24-08-2010 à 17:00:45
Accéder au second serveur via ftp ?
http://fr.php.net/manual/fr/book.ftp.php
http://fr.php.net/manual/fr/function.ftp-nlist.php
Marsh Posté le 24-08-2010 à 18:39:54
AzOo a écrit : Accéder au second serveur via ftp ? http://fr.php.net/manual/fr/book.ftp.php |
mauvaise idée. C'est pas parce que là son truc marche pas qu'il faut lui demander d'installer un serveur rien à voir, avec toutes les failles qui viennent avec.
Est-ce que tu as contrôlé que tu n'as pas un problème de configuration PHP? De mémoire il y a certains settings (dont safe_mode) qui interdisent l'utilisation de certaines fonctions ayant comme target un autre serveur.
Aussi, est-ce que tu as mis la "verbosity" du debug de PHP à fond?
Edit : Il y a d'autres personnes qui ont eu le même problème que toi et ont trouvé plusieurs solution pour y remédier. Regarde dans les commentaires d'utilisateurs : http://php.net/manual/en/function.opendir.php
Marsh Posté le 24-08-2010 à 20:41:45
Safe_mode est bien désactivé, la variable pour les lien url est activé (allow_url de mémoire)
Je n'ai jamais entendu parler de "verbosity", peux-tu me dire comment la controler et la modifier ?
j'avais déjà regardé les post du manuel PHP mais je viens d'en voir un intéressant (matt) je le testerai demain.
La "solution" du ftp m'est clairement interdite car le serveur ne sert pas qu'à mon appli.
Merci à tous pour votre aide, je vous dis demain comment ça a évolué.
En attendant, toutes nouvelles idées sont les bien venues.
++
Marsh Posté le 25-08-2010 à 08:19:06
Salut,
ça fait longtemps que j'ai plus trafiqué php, mais déjà tu as le E_ALL + E_STRICT activé?
Ton problème, je le sens comme une histoire propre à windows.. parce que à voir les gens sur le net, personne n'en parle en environnement Unix. T'as essayé de lancer le "net use" directement depuis ton PHP?
Marsh Posté le 25-08-2010 à 10:24:07
Problème résolu !!!!!
Il s'agit en fait des droit du server Apache.
Sous windows, avec Wamp, le service Wampapache n'a que les droits "local" il faut faire un clic droit sur le service->propriété ->connexion cliquer sur "Ce compte" et y entrer le compte administrateur du serveur qui contient les fichiers. Redémarrer le service et là, c'est magique
Je vous remercie tous pour vos aides et vos messages et vous dis
A bientot
Marsh Posté le 25-08-2010 à 11:32:28
Oué bon en même temps utiliser Wamp sur un serveur de prod, moi je considère que c'est du suicide... enfin bon voilà
Marsh Posté le 25-08-2010 à 11:59:25
Le serveur WAMP est provisoir, il va juste servir de support à une migration de BDD.
Question sécurité, il y a tout ce qu'il faut.
Marsh Posté le 25-08-2010 à 12:03:05
Oui mais ton problème, si tu sais pas comment le résoudre "en dur" dans Apache, tu vas te le re-prendre dans la gueule une fois que tu auras juste Apache.
Marsh Posté le 25-08-2010 à 12:06:45
Il n'y aura plus Apache après la migration. Et de toute façon ce ne sera plus mon problème alors
Marsh Posté le 25-08-2010 à 12:12:36
as-tu le droit via Apache de lister ce dossier ? S'il est lancé en tant que service, va voir avec quels droits (AD/NTFS) il s'exécute.
une machine qui a une IP en 192.168.0.0 ça me semble louche, mais je pense que t'as du faire une faute de frappe.
EDIT : la solution était plus haut, j'ai zappé un message dans le fil. Désolé...
Marsh Posté le 25-08-2010 à 12:14:13
C bon c'est résolu NewsletTux, merci quand même
Marsh Posté le 24-08-2010 à 12:53:19
Bonjour,
dans une application PHP que je développe je dois lister les fichiers se trouvant dans un dossier.
Pour ce faire, j'utilise la fonction opendir() puis readdir().
Le dossier que j'ai besoin de lister se trouve sur un autre server sous windows server 2003 (tout comme ma machine qui execute l'appli).
Ce dossier est partagé sur le réseau et les deux serveurs ont tous les droits l'un sur l'autre.
IP du serveur executant: 192.168.0.0
IP du serveur de stockage : 192.168.0.1
Mon problème, c'est que la ligne:
opendir("\\192.168.0.1\dossierpartage" )
provoque l'erreur : failed to open dir: No such file or directory
Or les lignes suivantes fonctionnent parfaitement:
opendir(\\192.168.0.0\undossierpartage)
opendir(\\localhost\undossierpatage)
opendir(\\127.0.0.1\undossierpartage)
Mes collègues et moi avons déduit qu'il s'agissait d'un problème de droits vis à vis de PHP puisque nous pouvons accéder à l'autre serveur par la commande "executer"
La question est: comment accéder à ce dossier partagé avec la fonction opendir()
Je ne sais pas si je suis clair mais je répondrai rapidement à ceux qui peuvent m'aider.
Merci à vous
Message édité par skp94 le 25-08-2010 à 10:24:31
---------------
Ventes: http://forum.hardware.fr/hfr/Achat [...] #t16509502