prob droit permission upload images

  • Auteur de la discussion Auteur de la discussion passion
  • Date de début Date de début
WRInaute accro
Bonjour,

Je galère vraiment depuis une bonne journée pour un truc vraiment très chiant :evil:
J'ai trouvé des éléments de réponses via notre ami google mais rien de probant.
Je m'explique....
Via un formulaire web, je charge une image en l'insérant dans un dossier que je crée à la volée via:
Code:
mkdir($rep_mini, 0777, true);
En contrôlant le résultat via ftp, mon dossier est bien créé par contre mon image => rien??!!
Je sais que le problème vient de Apache qui prend possession du dossier en lui adressant "apache apache" mais j'ai beau essayé de mettre mon user dans le groupe apache via "usermod -aG toto apache" ==> aucun résultat non plus!
Si je fais une nouvelle tentative mais en passant par ssh pour faire un chown toto mondossier... là, mon image sera uploadée !

Vous pouvez m'aider?
Merci
 
WRInaute accro
merci de ta réponse mais cela n'a rien à voir avec mes scripts PHP car ils fonctionnent très bien sur mes autres sites.
Mon problème n'est pas sur les scripts mais plutôt sur le serveur via Apache qui prend possession des fichiers uploadés en les mettant user et group -> apache
 
WRInaute discret
le safe_mod est probablement activé sur cet hébergement, ce qui implique des contraintes supplémentaires au niveau des propriétaires des dossiers et fichiers, avec parfois quelques incohérences comme dans ton cas où il n'y a aucune raison qu'Apache puisse créer un dossier et ne puisse pas y mettre quelque chose.

vérifie quand même $_FILES pour t'assurer qu'il est bien rempli et donc que ton image est bien transférée.

vérifie également si tu utilises move_uploaded_file plutôt qu'un simple move, si safe_mode est actif, ça peut jouer car c'est la seule commande (avec is_uploaded_file) ayant accès au fichiers temporaires liés à l'upload.
 
WRInaute accro
merci de vos réponses.
Oui safe_mode est activé.

Le prob viendrait donc de ceci?
Si je le désactive?
Est-ce dangereux?

Merci
 
WRInaute discret
passion a dit:
merci de vos réponses.
Oui safe_mode est activé.

Le prob viendrait donc de ceci?
Si je le désactive?
Est-ce dangereux?

Merci

bin, si tu sais ce que tu fais et que tu n'installes que des programmes sans faille, tu peux le retirer sans aucun problème
 
WRInaute accro
ouais bon, vaux mieux le laisser alors!
par contre, c'est vraiment prise de tête, cette histoire de droit et permission!
J'ai rajouté mon user dans le group "apache" mais cela ne fait pour autant :x

Pour info ce site est sur centOS via plesk .

Sinon en fouillant le web, il est question d'installer un module appelé "suPHP" ou "suExec" afin de garder les droits de mon user sur mon répertoire de travail!
Mais il faut savoir comment est compilé PHP en cgi ou non car en fonction de ça, je devrais installer l'un des deux modules.
Mais comment savoir?

Merci
 
WRInaute discret
est-ce que le dossier est forcément à créer par le serveur ou peux-tu le créer par FTP ?

si c'est que par le serveur, vire safe_mode ou effectivement utilise suPHP / suEXEC mais ça sera plus consommateur de ressources que sit u utilisais jusque là PHP et module Apache
 
WRInaute accro
en faite, le principe est simple.
Lorsque j'upload une image, je créé à la volée dans mon script PHP, un répertoire de stokage via la fonction "mkdir()" et dans ce même script, je charge la photo via la fonction "move_upload_file()" donc tout se fait via mon script PHP !
Aucune action via le ftp :)

J'ai beau mettre ma fonction mkdir() en 0777, l'image ne s'y trouve pas dans ce répertoire créé à la volée. De plus, il est reconnu comme user et group : "apache"
=> c'est le fond de mon problème
 
WRInaute discret
donc tu vas te retrouver avec autant d'images que de dossiers ? quel intérêt ? tu y stockes autre chose ?
 
WRInaute accro
safe_mode est sûrement la seule solution, j'ai eu le même genre de souci chez netim ça a résolu le problème.

edit -> chown ne pouvait d'ailleurs pas se faire pour changer le proprio du dossier et du coup je ne pouvais pas jouer avec les droits.
 
WRInaute accro
pprem a dit:
donc tu vas te retrouver avec autant d'images que de dossiers ? quel intérêt ? tu y stockes autre chose ?
Non ;)
<parenthèse>Je fais une gestion automatique sur la création de mes répertoires. Le but est de ne pas surcharger un répertoire unique de stockage en y mettant des centaines de milliers d'images. Je peux mettre au maximum 1000 images par répertoire créé.
</parenthèse>

ok bon... vu que j'ai pu lire que mettre le module suPHP ralentissait les performances du serveur, je vais me résigner à retirer le safe_mode!

Ce qui m'ennuie aussi c'est que cela à l'air d'être propre aussi à Plesk et donc, des solutions devraient être basique plutôt que de fragiliser son serveur en retirant ce safe_mode ??!!
 
WRInaute discret
si tu veux, tu peux ne le retirer que pour le dossier dans lequel se trouve le programme faisant la création des dossiers et l'upload des images. tu n'es pas obligé de le faire au niveau du serveur complet.
 
WRInaute accro
tu peut adopter une position "moyenne" si tu ne veux pas tout désactiver en bloc.

safe_mode "0" PHP_INI_SYSTEM Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

safe_mode_gid "0" PHP_INI_SYSTEM Disponible depuis PHP 4.1.0. Cette fonctionnalité obsolète sera certainement supprimée dans le futur.

safe_mode_gid booléen

Par défaut, le safe mode fait une comparaison des propriétaires, avant d'ouvrir un fichier. Si vous voulez alléger un peu ce niveau de sécurité, vous pouvez réaliser une comparaison de groupe, et activer cette directive. Si cette directive vaut FALSE (sa valeur par défaut), c'est une comparaison sur les UID, et, si elle vaut TRUE c'est une comparaison sur les GID.
 
WRInaute accro
et les codes de retour des fonctions de gestion des fichiers images, ils te donnent quoi ? car le "ça marche pas" doit bien renvoyer des codes d'erreurs
 
Discussions similaires
Haut