121 votes

autorisation file_put_contents refusée

J'essaie d'écrire une requête dans un fichier pour le débogage. Le fichier est en database/execute.php . Le fichier que je veux écrire est database/queries.php .

J'essaie d'utiliser file_put_contents('queries.txt', $query)

Mais j'obtiens

fichier_put_contents (queries.txt) [function.file-put-contents]: échec de l'ouverture du flux: autorisation refusée

J'ai le fichier queries.txt chmod'd à 777, quel pourrait être le problème?

77voto

Jason Points 5421

Essayez d’ajuster les autorisations du répertoire.

depuis un terminal, exécutez chmod 777 database (à partir du répertoire contenant le dossier de la base de données)

Apache et personne n’aura accès à ce répertoire s’il est correctement chmodé.

L'autre chose à faire est d'écho "getcwd ()". Cela vous montrera le répertoire en cours, et si ce n'est pas '/something.../database/' alors vous devrez changer 'query.txt' pour le chemin complet de votre serveur.

7voto

Adam Points 173

Réalisez que c'est assez vieux maintenant, mais il n'est pas nécessaire d'écrire manuellement les requêtes dans un fichier comme celui-ci. MySQL a un support de journalisation intégré, il vous suffit de l'activer dans votre environnement de développement.

Jetez un coup d'œil à la documentation du 'journal de requête général':

http://dev.mysql.com/doc/refman/5.1/en/query-log.html

2voto

Hesam Points 21

Les gars j'ai eu ce problème pendant 1 mois et fait tout, mais ne pouvait pas régler le problème, mais maintenant, je connais la solution.

J'ai une utilisation partagée d'hébergement linux, quand mon admin modifié le php 5.3 j'ai eu beaucoup d'erreur pour le "file_put_contents" du code. essayez de tester mon plan:

Dans votre hôte de créer un fichier comme mytest.php et mettez ce code dans et enregistrer:

<?php        mail('Your-EMail','Email-Title','Email-Message');        ?>

Ouvrir une URL "www.your-domain.com/mytest.php" une fois, puis vérifiez votre e-mail. vous devriez avoir un e-mail à partir de votre hôte avec les informations que vous avez saisies dans mytest.php, vérifiez le nom de l'expéditeur. si son de Personne vous avez un problème à propos de "Permission Denied" parce que quelque chose n'est pas défini, et si le nom de l'expéditeur est comme mon id: iietj8qy@hostname5.netly.net vous n'avez pas de prob.

Mon admin changé le serveur et installé l'hôte de nouveau, je pense, et le problème a résoudre, dites à votre administration d'accueil de ce que je vous ai dit et ils ont peut-être trouver la réponse.

espère que cela vous aide!

1voto

d-_-b Points 3491

Pour toute personne utilisant Ubuntu et recevant cette erreur lors du chargement de la page localement, mais pas sur un service d'hébergement Web,

Je viens de résoudre ce problème en ouvrant Nautilus ( sudo nautilus ) et en cliquant avec le bouton droit de la souris sur le fichier que vous essayez d'ouvrir, cliquez sur Propriétés> Paramètres>, puis donnez une lecture en écriture à "tout le monde".

-12voto

Kivanc Points 9

En outre, comme indiqué en file_put_contents man page en php.net , méfiez-vous des problèmes de nommage.

 file_put_contents($dir."/file.txt", "hello");
 

peut ne pas fonctionner (même si la syntaxe est correcte), mais

 file_put_contents("$dir/file.txt", "hello");
 

travaux. J'ai vécu cela sur différents serveurs php installés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X