Page 1 sur 2
upload fichier
Posté : 06 mai 2008, 08:56
par mcorgnet
Bonjour,
j'essaie d'uploader un fichier, puis de le copier dans un répertoire en amont de mon www.
en gros :
www
userfiles
sont au même niveau dans l'arborescence. Je suis sous windows, et mon compte a les droits d'accès au répertoire. Voici l'erreur renvoyée :
failed to open stream: Permission denied in D:\wamp\www\packages\FileTools\classes\FileTools.class.php
Une solution ?
Merci à vous.
Re: upload fichier
Posté : 06 mai 2008, 09:18
par Calimero
Je suis sous windows, et mon compte a les droits d'accès au répertoire. Voici l'erreur renvoyée :
failed to open stream: Permission denied in D:\wamp\www\packages\FileTools\classes\FileTools.class.php
Ton compte oui, apache non...
Posté : 06 mai 2008, 09:21
par mcorgnet
Okay, et comment je fais pour dire à apache d'utiliser un compte particulier ?
Posté : 06 mai 2008, 09:33
par zeus
Apache va utiliser son compte.
Le principe n'est pas de demande à Apache de changer de compte, mais à toi de donner les droits à Apache

Posté : 06 mai 2008, 09:33
par steph29
si tu as installe wamp en service tu peux preciser un compte particulier pour le lancer.
dans services, propriete de wampapache, onglet connexion
Posté : 06 mai 2008, 09:35
par mcorgnet
Apache va utiliser son compte.
Le principe n'est pas de demande à Apache de changer de compte, mais à toi de donner les droits à Apache

Okay, j'ai cherché dans les users de Windows, il n'y a aucun compte pour apache ...
Je tente la solution des services, mais je n'ai aucune doc à ce sujet.
Posté : 06 mai 2008, 09:38
par Calimero
Okay, et comment je fais pour dire à apache d'utiliser un compte particulier ?
Désolé, cela relève de l'utilisation de windows et je me refuse à en faire le support technique par principe. Je t'aurais répondu si tu avais utilisé un système libre.
Je te confirme aussi que le conseil de Zeus est effectivement la voie à suivre

Posté : 06 mai 2008, 09:45
par mcorgnet
Désolé, cela relève de l'utilisation de windows et je me refuse à en faire le support technique par principe. Je t'aurais répondu si tu avais utilisé un système libre.
Si ça tenait qu'à moi, je bosserais pas sur un serveur Windows avec php ...
Bon, quelqu'un sait-il quel compte utilise apache lorsqu'il charge sous Windows ?
Merci de votre aide.
Pour info et pour test, j'ai donné tous les droits aux comptes admin et system, ça n'a pas réglé le problème ...
Posté : 06 mai 2008, 09:50
par steph29
c'est le compte sytem par defaut...
Posté : 06 mai 2008, 10:02
par mcorgnet
Bon, après vérification, le compte system a tous les droits ...
Allez, c'est parti pour une journée à se concentrer sur des problèmes auxiliaires.
Merci de votre aide, je posterai ma réponse au passage.
Posté : 06 mai 2008, 10:18
par steph29
dans ce message d'erreur tu n'a pas plus d'informations?
Code : Tout sélectionner
Permission denied in D:\wamp\www\packages\FileTools\classes\FileTools.class.php
En general il est indique quelle commande plante, le script incrimine et le numero de ligne...
Posté : 06 mai 2008, 10:25
par Cyrano
Le problème n'est pas là, je suis absolument certain que
Mcorgnet sait parfaitement à quel endroit de son code ça bloque.
Le problème est que la commande sur un endroit qui est en dehors du répertoire docroot indiqué dans le httpd.conf. il faut donc ajuster ce fichier de configuration pour permettre l'utilisation d'un autre répertoire au besoin
Je n'ai pas mon bouquin sur Apache avec moi mais tu pourras trouver ça dans la doc Apache à mon avis

Posté : 06 mai 2008, 10:31
par mcorgnet
Bon, pour expliquer tout mon problème :
je gère des fichiers uploadés par des utilsateurs. Chaque utilisateur ne doit accéder qu'à ses fichiers, et ce depuis mon application développée en php.
Je n'ai songé qu'à deux solutions, pour le coup :
- enregistrer le fichier dans la base de données
- enregistrer le fichier dans un répertoire innaccessible aux utilisateurs, mais accessible à apache et php
J'ai préféré la seconde, avec un script qui me ramène le fichier dans un répertoire temporaire le temps de son téléchargement.
Si vous connaissez d'autres solutions, je suis preneur. Sinon, je continue de chercher ...
Merci encore de votre aide.
Posté : 06 mai 2008, 10:34
par Cyrano
Garder les répertoires dans l'arborescence web mais utiliser un .htaccess pour limiter l'accès uniquement à Apache/PHP. À froid comme ça je n'ai pas la procédure exacte mais j'explorerais cette voie avant tout le reste

Posté : 06 mai 2008, 10:34
par steph29
je veux bien mais le message serait
or la le message est sur le fichier de class...
donc soit on a pas le bon message d'erreur
soit:
- system n'a effectivement pas les droits sur le fichier de classe
- une directive dans le httpd.conf ou le php.ini bloque l'acces a un des repertoires au process php
- la commande php utilisee est interdite
- soit on a pas assez d'infos pour aider, d'ou ma question
et desole j'ai aussi tendance a explorer toutes les pistes possibles
Edit:
comme je poste apres la bataille, je complete....
ta solution est la bonne, et pour avoir a gere un intranet avec un wampserver je n'ai jamais eu de pb pour "jouer" avec des fichiers externes au documentroot...