permission refusée - php unlink
J'ai deux fichiers:
b.php et test.txt
<?php
$b = "test.txt";
unlink($b);
?>
et l'erreur est: Warning: unlink(test.txt) [function.unlink]: Permission denied
pourquoi? b.php et test.txt est 777 et le même groupe/login
si j'ai mis 777 sur le répertoire parent, je peux exécuter les dissocier, mais je dois mettre en 777 et retour à 755?
- Sont-ils dans le même répertoire?
- peut-être que vous avez besoin de l'autorisation d'écriture pour le répertoire dans lequel ils résident dans le processus qui exécute le code php.
- oui, même répertoire
- Cela fait-il partie d'un site web? Si oui, vous devez vous assurer que le serveur du processus dispose des autorisations pour le répertoire et/ou fichiers.
- Vérifier les autorisations du répertoire parent. Essayez de définir 777 sur le répertoire parent et voir si cela change quelque chose
- si j'ai mis 777 sur le répertoire parent alors je peux exécuter les dissocier, mais je dois mettre en 777 et retour à 755?
- Vous pouvez l'installer dos à 755, mais alors vous ne serez pas en mesure de créer de nouveaux fichiers ou de supprimer ceux qui existent jusqu'à ce que vous définissez le mode de retour à 777.
- J'ai besoin de le configurer 777 au dossier pour exécuter les dissocier?
- peut-être que le fichier est ouvert?
- .htaccess de captcha: deny from all, lorsqu'elles sont modifiées afin de permettre à tous, pas de message d'erreur plus
InformationsquelleAutor eugui | 2012-11-27
Vous devez vous connecter pour publier un commentaire.
Vous (comme dans le processus qui exécute
b.php
, soit vous par le biais deCLI
ou un serveur web) besoin d'un accès en écriture au répertoire dans lequel les fichiers sont situés. Vous mettez à jour le contenu du répertoire, de sorte que l'accès au fichier n'est pas suffisant.Notez que si vous utilisez PHP
chmod()
fonction pour définir le mode d'un fichier ou d'un dossier777
vous devez utiliser0777
assurez-vous que le numéro est correctement interprétée comme un nombre octal.Vous aurez d'abord besoin de fermer le fichier à l'aide de
fclose($handle);
ce n'est pas la suppression parce que le fichier est en cours d'utilisation. Alors d'abord fermer le fichier et puis essayer.en plus de toutes les réponses que d'autres amis , si quelqu'un qui est à la recherche de ce post est à la recherche d'un moyen de supprimer un "Dossier" et non un "fichier" , prenez garde à ce que les Dossiers doivent supprimer par php rmdir() la fonction et si tu veux supprimer un "Dossier" par
unlink()
, u sera rencontré avec un faux message d'Avertissement qui dit "permission denied"cependant u peut faire des dossiers & fichiers par
mkdir()
mais la façon dont u supprimer des dossiers (rmdir()
) est différente de la façon de supprimer des fichiers(unlink()
)De l'essayer. Espérons que cela aide.
La permission de fichier est correct (0777) mais je pense que votre sur le serveur partagé, donc pour supprimer votre fichier utiliser correctement;
1. créer un chemin d'accès à votre fichier
Que petit code de la magie et de supprimer n'importe quel fichier que vous voulez à partir d'un dossier fourni le chemin du fichier est de rassembler.