|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
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
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : décembre 2003 Messages : 3 717 ![]() |
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 ! _______________________________________________________________________ La rubrique Ruby / Rails recrute. Contactez moi ! _______________________________________________________________________ Cours Ruby et Ruby on Rails (RoR) - FAQ Ruby / Rails - Livres Ruby / Rails Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS Tutoriaux HTML/CSS et PHP |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Personne a une idée ? C'est quand même plus que troublant...
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
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 ?
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Inscription : décembre 2002 Messages : 741 ![]() |
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). |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#11 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
Merci de l'idée.
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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 ?
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#13 | ||||||||
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Allons-y !
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
Citation:
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
||||||||
|
|
00
|
|
|
#14 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
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.
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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.
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#16 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
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é !
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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)
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#18 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
Est-ce que ça veut dire qu'apache devrait théoriquement pouvoir faire la même chose ?
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
|
|
#19 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
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.
__________________
PHP : Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production) Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error()); Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable. Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/ |
|
|
00
|
|
|
#20 | |
|
Expert Confirmé
![]() ![]() Inscription : avril 2003 Messages : 3 286 ![]() |
Citation:
__________________
Tous mes tutoriels Pas de questions techniques par MP ni par e-mail, merci ! Prolog rules! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com