Vous n'êtes pas identifié.
Bonjour,
Impossible de supprimer un fichier sur un serveur distant :
passthru("rm -f "."fich.txt",$myresult);
print($myresult."<br>");
J'ai en retour la valeur 0 passée à $myresult. Malgré tout le fichier existe tjs sur le serveur.
Qui aurait une solution?
Merc d'avance
Hors ligne
Pourquoi ne pas utiliser la fonction php unlink($filename)?
Cela évite l'appel à une commande externe.
Hors ligne
avec UNLINK() , je ne peux pas faute de droits que je n'arrive pas à débloquer :
Warning: unlink() failed (Permission denied) in /testjlt/my_exec_traca.php
Hors ligne
Si tu n'as pas les droits avec unlink, tu ne peux pas les avoir avec rm, c'est pour ça que cela ne fonctionne pas... vérifie l'owner et le mode du fichier.
Hors ligne
J'ai essayé avec plusieurs owner's en modifiant les attributs mais rien n'y fait ...
:cry:
Hors ligne
Quels sont les droits du fichier? du répertoire? en quel utilisateur s'exécute le script?
Hors ligne
droit du fichier = 761
droit repertoire = 700
le script s'exécute au travers d' 1 poste client (page PHP)
Hors ligne
ils sont bizarres tes droits du fichier et du répertoire...
Tu essaies de faire quoi exactement avec un fichier en rwxrw---x ?
Tu es sûr que le serveur web tourne dans le même uid que le dossier?
Essaie de chmod go+rw le dossier, pour voir.
Hors ligne
OK merci BlueWhisper
Effectivement en modifiant les droits (umask =777) du rep. tout va mieux.
Pour ceux que ça interesse, faire attention à safe_mode dans php.ini, si il est actif, toutes les fonctions du type EXEC(), PASSTHRU(), UNLINK() ....
ne sont pas autorisées.
Hors ligne
dépend, pour le safe_mode.....
on peut très bien désigner un dossier à Apache contenant les commandes exécutables par des visiteurs "web". Il suffit de faire un symlink de l'appli dans ce dossier, sauf erreur, et ensuite, vous pouvez exécuter sans autres ces appli...
A voir avec la doc de Apache, bien entendu
Hors ligne
à mon avis le safe_mode vaut pas vraiment la peine... c'est beaucoup plus adapté d'utiliser soit php en cgi avec suexec, soit avec suphp... ou bien alors de limiter avec open_basedir.
Hors ligne