php fopen ne parvient pas à ouvrir un fichier pour écrire dans Mac OS X

J’exécute le script php updreading.php localement sur mon ordinateur portable (avec Mac OS X 10.6.7). Voici le contenu de updreading.php

 

Lorsque je l’exécute, j’obtiens le message d’erreur “Impossible d’ouvrir le fichier d’écriture”. Je pense que cela devrait avoir quelque chose à voir avec les permissions. Je me suis fait (arman) un propriétaire de / Library / WebServer / Documents / avec des permissions de lecture et d’écriture et des «parameters appliqués aux éléments joints». Mon script et mon fichier à écrire (examples-output.txt) se trouvent dans / Library / WebServer / Documents / wabun /. Voici les permissions pour les fichiers dans / Library / WebServer / Documents / wabun /:

 -rw-r--r--@ 1 arman admin 0 May 1 01:03 examples-output.txt -rw-r--r--@ 1 arman staff 1657 May 1 01:04 updreading.php 

J’essayais de résoudre le problème au cours des 4 dernières heures en essayant différentes permissions sans chance. Des idées sur la façon de résoudre ce problème, les gars? Merci!

Je parie que le problème est que votre serveur Web ou votre instance PHP ne fonctionne pas sous le même utilisateur ( arman ), vous pouvez le vérifier en utilisant la fonction get_current_user() . Vous pouvez soit configurer apache pour exécuter avec vos privilèges (demander dans ServerFault) ou donner au dossier des permissions plus généreuses, comme 0777 .

Une autre chose, êtes-vous sûr que $outFile correspond à un chemin absolu ? Essayez de faire:

 var_dump(is_file($outfile)); 

J’avais exactement le même problème. Je devais m’assurer que les permissions étaient également correctes pour tous les dossiers parents . Par exemple, si (sous OSX) tente d’écrire dans le répertoire ~/foo/bar/baz , je l’ai résolu avec la commande chmod -R 777 ~/foo .

vous devez faire apache (en supposant que apache est le serveur que vous utilisez) le propriétaire ou mettre en groupe (et donner un access en écriture au groupe) ou donner un access en écriture à tous ou etc.