Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2007, 11h58   #1
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
Par défaut is_dir : errno=13 - Permission denied

Bonjour à tous,

J'ai problème avec la fonction is_dir qui me renvois toujours faux sur un repertoire qui existe.

Voici un script tout bete que j'ai fait pour debugger :

Code :
1
2
3
4
5
6
7
8
  if(is_dir('/home/arbo1/arbo2'))
  {
    print 'ok';
  }
  else
  {
    print 'nok';
  }
Si je lance ce script en ligne de commande, cela me renvoi 'ok'.

Si je lance ce script via un navigateur, cela me renvoi 'nok'.

les repertoire arbo1 et arbo2 on les memes droits et propriétaire.

Si je refais ce test avec /home/arbo1 seulement, cela marche dans les 2 cas

Je sais qu'il y a deja eu des bugs de recenssés avec cette fonction, croyez vous qu'il sagissent de cela ici ?

Ou alors il ya qqchose que je ne vois vraiment pas..

En tous cas, merci a ceux qui tenteront de m'aider.
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 12h04   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
le répertoire "arbo2" a peut-être des droits d'accès spéciaux ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 12h24   #3
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Essaie avec file_exists() : si elle retourne TRUE, alors tu as soit is_dir() soit is_file()... Espérons
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 12h54   #4
Membre confirmé
 
Avatar de lun4t1k
 
Inscription : janvier 2007
Messages : 276
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2007
Messages : 276
Points : 233
Points : 233
Ou peut etre que tu n'as pas accès a la fonction is_dir...
bloquée par l'hébergeur!

Essaie file_exists ca marche bien ^^
lun4t1k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 13h43   #5
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
Merci pour vos reponses.

J'ai revérifié les droits/user/group des repertoire en question :

Repertoire arbo1 :

drwx------ 7 user1 group1

Repertoire arbo2 :

drwxrwxrwx 5 user1 group1


Sinon, j'ai testé avec la fonction file_exists, cela a le meme comportement :

- Fonctionne lorsque je lance le script en ligne de commande.

- Lorsque je l'integre dans une appli afin de le tester sur un navigateur web :

Warning: stat failed for /home/arbo1/arbo2 (errno=13 - Permission denied) in /home/arbo3/monScript.php on line 7.
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 13h51   #6
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Un problème de chown, en ligne de commande ton bash a accès au répertoire en question mais pas le processus de apache (group www-data ?).

Il te suffit donc d'adapter avec chown ou les droits avec chmod
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 14h12   #7
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
Je suis sous une RedHat, dans mon httpd.conf j'ai ceci :

User nobody
Group users

J'ai tester en faisant un chown -R noboby:users sur le repertoire en question, et rien n'y fait..

Ce qui est vraiment byzarre, c'est que cela fonctionne pour mon repertoire /home/rep1 et pas pour le repertoire /home/rep1/rep2...

Alors que rep1 et rep2 ont le meme propriétaire, le meme groupe, et le rep2 a meme + de droits que rep1...

Je seche
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 16h45   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
essaye un "chmod o+r " sur le répertoire "arbo1"
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h00   #9
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
J'ai fait

J'ai retesté avec is_dir, et file_exists, c'est toujours pareil...

En fait, aucune fonction liée au repertoire ne passe (ni meme chdir,opendir...)

Merci malgrés tout
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 16h32   #10
Membre régulier
 
Avatar de ashurai
 
Inscription : juillet 2004
Messages : 144
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2004
Messages : 144
Points : 88
Points : 88
J'ai reussi à me débloquer, mais ma solution n'est pas top au niveau sécurité..

(De plus, cela me fait penser que ce post est du coup dans la mauvaise partie puisqu'il correspond plus à une problème lié au paramétrage du serveur apache... je m'excuse auprés des modo )

Voila, en fait j'ai modifié le httpd.conf de manière a ce que le user, et le group soient les mêmes que ceux des repertoires dans lesquels je souhaite travailler.

Ce qui est trés byzarre, c'est que ma fonctionnalité qui pose problème sous Redhat, ne pause aucun problème sous Debian.

Je pense donc que le problème viens plus d'un parametrage d'apache.

J'ai comparé les 2 httpd.conf des 2 serveurs, de manière a les mettre à l'identique, et rien ne change.

Il reste malgrés tout une différence dans les 2 httpd.conf :

Sous Debian (qui marche):

Code :
1
2
User nobody
Group nogroup
Sous RedHat (qui ne marche pas):

Code :
1
2
User nobody
Group users
Quelqu'un aurait t'il une lueur d'idée ?

Sinon tanpis, je prendrais ma solution pas top
ashurai est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h41.


 
 
 
 
Partenaires

Hébergement Web