IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Écriture fichier : problème de permissions (non trivial ?)


Sujet :

Langage PHP

  1. #1
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut Écriture fichier : problème de permissions (non trivial ?)
    Bonjour.
    J'ai un souci avec un fopen en mode "w", je récolte un "failed to open stream, permission denied" alors que j'ai toutes les permissions (si si, je vous assure !)

    Je me demande si ça a un lien avec ce bug

    Quelqu'un saurait m'aider ?
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Ce n'est pas vraiment une réponse mais bon....

    En essayant de l'ouvrir en r+ (ou w+) (ca ne devrai rien changer pour toi), ca te fait la même chose ?
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par titoumimi
    Ce n'est pas vraiment une réponse mais bon....

    En essayant de l'ouvrir en r+ (ou w+) (ca ne devrai rien changer pour toi), ca te fait la même chose ?
    En fait non, pas tout à fait : il n'y a plus de warning, mais apparemment le fichier n'est ouvert qu'en lecture, et je ne peux pas écrire. Il n'y a pas d'erreur pour le fwrite, mais il n'a aucun effet.

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Personne a une idée ? C'est quand même plus que troublant...

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Je suis toujours en train de bosser sur ce problème... En fait un is_writeable sur le fichier me renvoie false, alors qu'il est en 777 !
    Comment se fait-ce ?

  6. #6
    Membre éclairé Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Points : 693
    Points
    693
    Par défaut
    En fait les scripts php sont lancés avec l'utilisateur du serveur web.
    En général sous apache, par défaut, c'est l'utilisateur apache.

    Donc il faut que tu donnes des droits à cet utilisateur, ou que tu changes l'utilisateur du serveur (souvent dans /etc/htppd/conf/http.conf pour apache).

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par MatRem
    En fait les scripts php sont lancés avec l'utilisateur du serveur web.
    En général sous apache, par défaut, c'est l'utilisateur apache.

    Donc il faut que tu donnes des droits à cet utilisateur, ou que tu changes l'utilisateur du serveur (souvent dans /etc/htppd/conf/http.conf pour apache).
    Je répète : les droits du fichier sont 0777. Tout le monde a tous les droits. Sinon je posterais pas...

  8. #8
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    si il est en 777 tout le monde a les droits d'ecriture, donc c'est pas un probleme d'utilisateur.

    A tout hasard, essaye de mettre 777 sur les droits du *dossier* qui contient le fichier en question. En principe ce n'est utile que pour la création et la suppression, mais on peut imaginer que la modification de fichier modifie une donnée du dossier (et donc heritage de droits en cascade) mais je dis p'tet n'importe quoi, c'est pure supposition... essaye quand meme ;o)

  9. #9
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    A tout hasard, essaye de mettre 777 sur les droits du *dossier* qui contient le fichier en question. En principe ce n'est utile que pour la création et la suppression, mais on peut imaginer que la modification de fichier modifie une donnée du dossier (et donc heritage de droits en cascade) mais je dis p'tet n'importe quoi, c'est pure supposition... essaye quand meme ;o)
    Merci du conseil, j'ai essayé, ça ne résoud rien (comme prévu )

  10. #10
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Dans ce cas là, avant d'appeller un exorciste, essaye de supprimer ton fichier et de le recreer entierement avec php (droits 777 sur le répertoire cette fois ci necessaire ;o)

    Pour faire ca tu peux faire un fichier php temporaire qui fait que ca ;o)

  11. #11
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    Dans ce cas là, avant d'appeller un exorciste, essaye de supprimer ton fichier et de le recreer entierement avec php (droits 777 sur le répertoire cette fois ci necessaire ;o)

    Pour faire ca tu peux faire un fichier php temporaire qui fait que ca ;o)
    Déjà fait sans succès
    Merci de l'idée.

  12. #12
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Si les solutions intelligentes marchent pas, c'est que la solution doit etre plus bete... donc :

    * Est-ce que tu est sur que ton fichier est dans le meme repertoire (un p'tit coup de file_exists() avant c'est le mieux ;o)
    * Est-ce que ton fichier contient des caracteres spéciaux (le mieux : alphanumerique uniquement + '.', pas d'espace ou autre)
    * Est-ce que ton fichier n'est pas ouvert par une autre application en meme temps ?
    * Est-ce que le dossier qui contient ton fichier n'est pas ouvert par un explorateur windows ?
    * Est-ce que le probleme arrive sur d'autres fichiers ou seulement celui ci ? Et si oui, d'ou vient le probleme (repertoire, nom de fichier, contenu du fichier)
    * fopen en mode b ou fopen en mode t ?
    * c'est pas un raccourci (windows) ou un lien symbolique (linux) ?
    * version de php ? safe mode activée ou non ?

  13. #13
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Allons-y !

    Citation Envoyé par Fladnag
    Est-ce que tu est sur que ton fichier est dans le meme repertoire (un p'tit coup de file_exists() avant c'est le mieux ;o)
    oui
    Citation Envoyé par Fladnag
    Est-ce que ton fichier contient des caracteres spéciaux (le mieux : alphanumerique uniquement + '.', pas d'espace ou autre)
    non, que des chiffres
    Citation Envoyé par Fladnag
    Est-ce que ton fichier n'est pas ouvert par une autre application en meme temps ?
    non
    Citation Envoyé par Fladnag
    Est-ce que le dossier qui contient ton fichier n'est pas ouvert par un explorateur windows ?
    non
    Citation Envoyé par Fladnag
    Est-ce que le probleme arrive sur d'autres fichiers ou seulement celui ci ? Et si oui, d'ou vient le probleme (repertoire, nom de fichier, contenu du fichier)
    j'ai essayé avec d'autres fichiers (créés pour l'occasion) avec la même méthode, ça ne marche pas non plus.
    Citation Envoyé par Fladnag
    fopen en mode b ou fopen en mode t ?
    testé les deux, dans la version actuelle je ne force pas le mode.
    Citation Envoyé par Fladnag
    c'est pas un raccourci (windows) ou un lien symbolique (linux) ?
    non
    Citation Envoyé par Fladnag
    version de php ? safe mode activée ou non ?
    4.4.0, safe_mode off

  14. #14
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    Dans ce cas là, avant d'appeller un exorciste, essaye de supprimer ton fichier et de le recreer entierement avec php (droits 777 sur le répertoire cette fois ci necessaire ;o)
    Rectification : je PENSAIS avoir fait ça.
    J'essaie de faire un touch sur un nouveau fichier :

    Warning: touch(): Unable to create file XXX because Read-only file system in XXX/tmp/create.php on line 3

    curieux, non ?

    Pour info, je sais pas si ça joue mais apache va chercher les fichiers à publier sur un montage NFS.

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Etrange en effet... mais au moins c'est plus coherent ;o)

    peut etre le montage est il en read only, tu as encore des droits a ce niveau la il me semble. De plus, si le file system d'origine n'est pas nfs, il est possible qu'il ne sache pas ecrire sur les disques nfs, ca depend des drivers disponibles.

  16. #16
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    peut etre le montage est il en read only, tu as encore des droits a ce niveau la il me semble. De plus, si le file system d'origine n'est pas nfs, il est possible qu'il ne sache pas ecrire sur les disques nfs, ca depend des drivers disponibles.
    Aïeuuuuu...
    Ou est-ce que je peux aller voir sur ma machine unix les droits du montage NFS ? J'ai pas la main dessus, mais au moins je serai fixé !

  17. #17
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Heu... en principe, sous une interface graphique, clic droit propriétés, tu as les droits du montage. mais bon... quand on utilise unix c'est pas pour utiliser une interface graphique ;o)

    Donc eventuellement je dirais p'tet un p'tit "ls -al /dev" ? ou /mnt ? j'sais pô trop ;o)

  18. #18
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    Heu... en principe, sous une interface graphique, clic droit propriétés, tu as les droits du montage. mais bon... quand on utilise unix c'est pas pour utiliser une interface graphique ;o)

    Donc eventuellement je dirais p'tet un p'tit "ls -al /dev" ? ou /mnt ? j'sais pô trop ;o)
    Quand j'accède à ces répertoires en NFS avec mon compte, j'ai bien les droits en écriture, je vois bien un 777 dans les permissions là où il doit être. Et je peux bien sûr créer des fichiers.
    Est-ce que ça veut dire qu'apache devrait théoriquement pouvoir faire la même chose ?

  19. #19
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    non, pas forcement... et en effet, rien ne dit que le montage soit accessible en ecriture pour apache. faudrait voir avec un admin reseau ou unix là, souvent les montages ont des droits différents selon les utilisateurs, toi tu voit du 777 mais peut etre que l'utilisateur php voit autre chose.

  20. #20
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Fladnag
    faudrait voir avec un admin reseau ou unix là
    C'est bien ce que je craignais... Ben je crois que ça va être plus simple de demander l'ouverture d'une base MySQL pour stocker UN nombre, que d'avoir ces permissions

Discussions similaires

  1. [PrestaShop] Votre répertoire de dépôt de fichier n'a pas les permissions suffisantes en écriture
    Par Transportervw dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 06/04/2015, 13h35
  2. écriture fichier properties
    Par touriste44 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 20/05/2010, 13h26
  3. [C#] écriture fichier .txt + calcul écart-type
    Par titaB dans le forum Windows Forms
    Réponses: 6
    Dernier message: 26/05/2005, 13h09
  4. [Servlet] Probléme écriture fichier
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/05/2005, 15h17
  5. Ouverture/écriture fichier Excel
    Par mathieu04 dans le forum Windows
    Réponses: 17
    Dernier message: 07/06/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo