[resolu]creation de dossiers/fichiers a la volee - problemes de droits

creation de dossiers/fichiers a la volee - problemes de droits [resolu] - PHP - Programmation

Marsh Posté le 18-08-2006 à 12:57:52    

Bonjour,
 
Je cree un script qui permet la creation a la volee de dossiers (tous crees dans un dossier parent nomme images/, qui est en chmod 777)
 
Je souhaite que mes dossiers crees dans images/ aient un max de droits, afin de pouvoir par la suite y stocker des images (via un formlaire d'upload.
 
Tout cela marche bien en local (EasyPHP) mais sur mon serveur, c'est autre chose
 
Voici ce que j'ai d'abord fait :
$path = 'blabla'
mkdir('images/'.$path, 0777);
 
Le dossier blabla se cree bien, mais en chmod 755. Si j'essaye apres d'y stocker des fichiers, impossible :/
 
j'ai donc tente la chose suivante :
 
$path = 'blabla'
mkdir('images/'.$path, 0777);
chmod('images/'.$path, 0777);
 
Le dossier blabla la aussi est bien cree, et lorsque je regarde ces droits via mon logiciel FTP filezilla, O miracle, il est bien en 777.
Je pensais donc avoir trouve une solution.
Or, quand j'essaye d'y stocker un fichier via mon formulaire d'upload, idem, il n'arrive pas a y uploader le fichier.
 
Je pourrais eventuellement stocker mes images directement dans images/, ce qui marche parfaitement, mais mon idee etait vraiment de faire des sous-dossier
 
Du coup je susi coince, et je dois avouer que je ne sais pas trop quoi faire pour remedier a cela.
 
 
Des idees ?


Message édité par nintendose le 20-08-2006 à 06:42:32

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 18-08-2006 à 12:57:52   

Reply

Marsh Posté le 18-08-2006 à 16:36:52    

change le proprietaire du dossier en "apache", avec chown

Message cité 1 fois
Message édité par flo850 le 18-08-2006 à 16:37:19
Reply

Marsh Posté le 18-08-2006 à 20:00:54    

flo850 a écrit :

change le proprietaire du dossier en "apache", avec chown


 
 
Si je fais comme tu m'as dit, cela donne :
 
$path = 'blabla/'
mkdir('images/'.$path, 0777);
chmod('images/'.$path, 0777);  
chown('images/'.$path, "apache" );
 
 
En suite pour tester j essaye de copier un fichier dans le repertoire nouvellement cree, mais cela ne marche pas :/
La commande chown ne me retourne aucune erreur, c'est donc qu elel a bien ete effectuee, or cela ne change rien a mon pb :/


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 19-08-2006 à 12:50:30    

Quand tu dis que "ça marche pas", tu as quelle erreur lors de l'envoi du fichier ?


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 19-08-2006 à 15:20:15    

Dj YeLL a écrit :

Quand tu dis que "ça marche pas", tu as quelle erreur lors de l'envoi du fichier ?


 
 
bah le pb c'est qu'apparemment les notifications d'erreur sont desactivees sur mn serveur (serveur dedie pris chez cdedie.com).
Du coup aucune erreur ne s'affiche, meme quand je mets en tete de script error_reporting(E_ALL);
donc pas facile de savoir d ou vient l erreur, a part que totu ce que je sais, c'est que malgre que mon path cree soit bien en chmod 777, pas moyen d'y placer quoi que ce soit (ca marche bien en local).
 
En fait pr mon test une fois le dossier cree (blabla), j'essaye d'y copier un fichier test.txt, situe a la racine de mon site
 
VOila mon script de test complet :
 

Code :
  1. <?
  2. error_reporting(E_ALL);
  3. $path = $_GET['path'];
  4. if(!mkdir("test/".$path, 0777))
  5. echo "j ai pas pu cree ton dossier ".$path."<br/>";
  6. else
  7. {
  8. echo "dossier '".$path."' cree avec succes<br/>";
  9. if(!chmod("test/".$path."/", 0777))
  10.  echo "<br/>j ai pas pu chmoder le dossier cree :(<br/>";
  11. else
  12. {
  13.  if(!chown("test/".$path."/", "apache" ))
  14.     echo "pas chown :(<br/>";
  15.  else
  16.     echo "chown OK<br/>";
  17.  if (!copy("test.txt","test/".$path."/test.txt" ))
  18.      echo "eh merde impossible de copier le fichier dans le dossier nouvellement cree";
  19.  else
  20.      echo "youpi !!!!!";
  21. }
  22. }
  23. ?>


 
En gros il fait tout bien jusqu'a la copie du fichier dans le dossier nouvellement cree.
Bien sur, le fichier test.txt existe bien a la racine de mon serveur.
 
Plutot que de faire une copie de fichier suite a la creation de mon path, j'ai essaye d'autres choses, comme la creation de fichier texte (en a+), la creation d'un sous-dossier, mais le constat est toujours le meme : rien n'est cree. Comme si malgre que mon dossier cree soit en 777, il ne veut pas mettre quoi que ce soit dedans.
 
J'ai bien evidemment tente de contacter cdedie, mais ils mettent 10 ans avant de te repondre, malheureusement :(
 
Donc je seche, et je m'oriente + vers un probleme de configuration apache ou bien du serveur FTP.


Message édité par nintendose le 19-08-2006 à 15:22:41

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 19-08-2006 à 15:51:23    

essaye voir de creer un fichier :
 
$file = fopen('test/test.txt', 'wb');
fwrite($file, 'Pourquoi ça marche pas ?');


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 19-08-2006 à 19:09:05    

Dj YeLL a écrit :

essaye voir de creer un fichier :
 
$file = fopen('test/test.txt', 'wb');
fwrite($file, 'Pourquoi ça marche pas ?');


 
 
idem, ca ne cree pas le fichier :/
 
AAARGH


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 19-08-2006 à 19:25:26    

Tu peux coller ça en tête du fichier :
 

Code :
  1. echo ini_get('error_reporting') . ' - ' . ini_get('display_errors') . ' - ' . ini_get('error_log');


 
Et me dire ce que ça donne ?


Message édité par Dj YeLL le 19-08-2006 à 19:26:46

---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 20-08-2006 à 06:03:14    

ola,
 
je suis arrive a obtenir le log d'erreur :
 
EN fait il semble que SAFE MODE soit active, ce qui m'empeche tout bonnement de creer quoi que ce soit dans mon dossier nouvellement cree, voici l'erreur :
 

Citation :


Warning: copy(): SAFE MODE Restriction in effect. The script whose uid is 10020 is not allowed to access /var/www/vhosts/xxxxx.com/httpdocs/test/blabla owned by uid 48 in /var/www/vhosts/xxxx.com/httpdocs/testpath.php on line 24  


 
J'imagine donc que je dois desactiver ce SAFE MODE (qui va d'ailleurs disparaitre dans la version 6 de PHP.
J'ai bien un acces SSH (via Putty) sur mon serveur, or mes competences me semblent bien minces pour pouvoir faire la manip, et si je me rsique a demander a cdedie de le faire, je peux attendre jusqu'a noel. Et j'ai un peu peur de faire une fausse manip :/
 
Auriez vous un tutoriel dispo, ou autre a me conseiller ?
 
Merci


---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 20-08-2006 à 06:42:03    

\o/ alleluia.
 
Je me suis auto-forme a putty, et j'ai pu modifier php.ini, tout marche impeccablement maintenant :) j'ai neanmoins pris le soin de faire un backup de php.ini, au cas ou :)
 
Comme quoi suffisait juste de mettre les mains dans le cambouis :)


Message édité par nintendose le 20-08-2006 à 06:43:27

---------------
Expatrie a Jakarta (Indonesie) depuis fevrier 2006.
Reply

Marsh Posté le 20-08-2006 à 06:42:03   

Reply

Marsh Posté le 20-08-2006 à 11:23:32    

Parfait :jap:


---------------
Gamertag: CoteBlack YeLL
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed