Aller au contenu

Faire un chmod dans un script PHP


Sujets conseillés

Posté

Bonjour,

Je me pose une question concernant les droits sur les fichiers et répetoires :

J'ai un repertoire : "donnees" qui comporte lui-même 3 répertoires, qui eux contiennent des fichiers textes.

Chaque jour je publie ce répertoire sur le web, dans une partie privée de mon site.

Ensuite j'execute un script qui ouvre ce repertoire "donnees", et qui parcourt tout son contenu pour alimenter une base temporaire.

Une fois la base temporaire remplie, le script alimente ma base principale.

Quand c'est terminé, JE supprime manuellement sur le serveur, mon répertoire "donnees", or j'aimerai automatiser cette suppression.

J'ai essayé de faire un "unlink(donnees)" à la fin du script, mais j'ai un message me disant que je n'ai pas le droit.

J'ai essayé de faire un "chmod(donnees,0777)", avant mon unlink, mais ça ne marche pas non plus.

Savez-vous d'ou cela peut provenir ?

Merci.

Posté (modifié)

Ptite erreur de syntaxe dans ton chmod, essaye plutot ca:

chmod ("/donnees", 0777);

Modifié par PoM_-
Posté

Pour effacer un dossier utilise plutôt rmdir. Le dossier à effacer doit être vide, efface donc tous les fichiers qui s'y trouvent avant (une petite boucle et des unlink).

Posté

Merci WewEb,

J'avais essayé le rmdir, mais je n'avais pas vidé mon répertoire avant. Je vais donc essayé ceci.

Par contre, j'espère que les "unlink" vont fonctionner.

Posté

Tu es chez quel hebergeur ?? car a priori tous les hebergeurs n'acceptent pas de modifier le chmod des fichiers ( comme free par exemple ).

Sinon est - ce que le chemin du repertoire indiqué est le bon ? peut etre ta page n'est pas a la racine ce qui fait que le liens n'est pas bon.

Sinon l'idée a WewEb meparait etre une bonne solution ^^ GG a toi :)

Posté

Bonjour,

Je viens de tester la suppression de mon répertoire "donnees" en faisant ceci :

 if (file_exists("C:\donnees"))
        {
        $rep="C:\donnees";
        chmod($rep,0777);
        unlink($rep);
        print "donnees supprimé !!!!!<br><br>";
        }
    else
        {echo $rep. "n'existe pas";}

Ce petit bout de code ne fonctionne pas, "access denied".

En fait je teste en local.

Mon serveur est dédié chez ovh

Pour faire le test, j'ai vidé le repertoire "donnees" (comme si je l'avais vidé avec une boucle).

Avez-vous une idée ?

Posté

Je n'ai pas essayé, car j'ai peur de faire des bétises,... vu que c'est notre site de vente en ligne et qu'il s'agit de notre base produits...

je vais essayer de me faire un petit script a part, pour le tester...

Posté (modifié)

Bon voila je te l'ai fais. Il ne te reste plus qu'a faire la partie qui vide le repertoire. Je l'ai testé il marche très bien.

Coordialement, PoM_-

<?

if (file_exists("donnees")){
       
       $rep="donnees";
       chmod($rep,0777);
       rmdir($rep);
       print "Le repertoire ".$rep." a été supprimé.<br><br>";
     
} else {

       echo "Le répertoire ".$rep." n'existe pas";

}

?>

Modifié par PoM_-
Posté

No problem :) Si ta besoin d'aide pour la suite chui la :P ! ( enfin chui la jusqu'a demain midi, apres jprend 2 semaines de vacs bien mérité ^^ )! Previens moi si ca marche sur ovh, je pense qu'il ne devrait pas y avoir de problème ;)

Posté

Merci pour ta disponibilité PoM,

Je viens d'essayer et ça ne marche pas,

Voici la réponse :

Warning: chmod(): Operation not permitted in /home/site/www/admin/selection.php on line 176

Warning: rename(/home/site/www/admin/donnees/,donnees22): Permission denied in /home/compumar/www/admbtik/selection.php on line 177

/home/compumar/www/admbtik/donnees/ renomme

En fait j'ai juste essayé de renommer le répertoire, pas le supprimer. Et même ça je ne peux pas le faire.

Voici le petit bout de code :

if (file_exists("/home/site/www/admin/donnees/"))
        {
        $rep="/home/site/www/admin/donnees/";
        //unlink($rep);
        chmod($rep,0777);
        rename($rep,"donnees22");
        print $rep." renomme";
        //print "le rep a été supprime !!!!!<br><br>";
        }
    else
        {echo $rep. "n'existe pas";}

je pense que je n'ai pas les droits suffisants pour faire ce genre d'actions et je n'y connais rien en administration de serveur !

Posté
Permission denied

Je pense que ton hebergeur n'autorise pas ce genre de script. Mais ca me parait bizare tout de meme. As-tu essayer celui qui permet de supprimer le repertoire? Si non peut tu l'essayer afin de me dire, si il veut bien le supprimer tout de meme.

Posté

Pour que cela marche, il faut que l'utilisateur sous lequel tourne php ait le droit d'écriture dans le répertoire admin (niveau au dessus).

Sinon, les suppressions de répertoires fonctionnent très bien chez OVH. ;)

Dan

Posté

Et bien je viens d'essayée ton script de suppression, PoM et je ne suis pas autorisée à faire ce type d'action sur le serveur.

Je ne sais pas trop comment changer mes droits car il s'agit d'une boutique oscommerce et je ne suis pas "top Administrator", mais "low administrator".

Posté

Merci à tous pour vos conseils, ne n'ai réussi à faire ce que je voulais mais cela peut attendre.

Bonnes vacances PoM ! :rolleyes:

Posté

Bin je te remercie et desole que cela ne marche pas :S ! Si tu peux me send par mp l'url de ta boutique et me dire quel est ton but de faire ca avec oScommerce :)!

Si besoin d'aide tu as n'hésites pas ;)

PoM_-

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...