mkdir permission denied !

page 1 page 2
Répondre
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
Salut tt le monde !

Bon, un petit souci avec mkdir et les droits d'écriture....
J'ai écrit un script tt con pour créer des repertoires sur un serveur de fichiers (lecteur réseau) :

if(!is_dir($repertoire))
$ok = mkdir($repertoire,0666);
après je déplace un fichier de mon serveur web local vers le serveur de fichiers:
if(!file_exists($chemin.$fichier) && $ok ){
//on copie le fichier vers le repertoire distant
if(copy($chemin_old.$fichier, $chemin.$fichier) ){
//si la copie réussit,on l'efface du repertoire local
unlink($chemin_old.$fichier);
}
}

Lorque je testais via easyPHP en local, no problemo : je créais les rep qui n'existaient pas , je déplaçais le fichier et tutti quanti.

MAIS: depuis le serveur web , j'obtiens cette insulte :
Warning: mkdir(Q:/Exploitation): Permission denied in D:\Apache_Group\www\mes_fonctions.php3

je me doute qu'il y a un problème de droits, mais je peux accèder au lecteur réseau depuis le serveur sur lequel est installé Apache...
J'ai lu qq part qu'il fallait donner les droits au script qui appelle le mkdir, ou au serveur web, est ce que cela dit qq chose à quelqu'un ?
passke là, je rame !

merci d'avance !
++
seb
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Si tu met ton repertoire avec un chmod max, ca fonctionne ou pas ?
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
hé bien, je vois ce que tu veux dire , mais comment je fais ? un chmod ?
et si oui, je le fais sur quel repertoire ? la racine du serveur de fichiers ?
et pis le truc que je pige pas, c'est que ça fonctionnait très bien avec mon apache en local...
sinon j'ai essayer en créant le rep avec :
if(!is_dir($repertoire))
$ok = mkdir($repertoire,0777);

mais ça, ça change rien ! :(
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Est ce que $chemin == $repertoire ?
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
heu oui, désolé de ne pas l'avoir précisé .
En fait , je construit dynamiquement une arborescence de repertoires :
foreach($hierarchie as $tmp)
{
$query2 = "SELECT titre from spip_rubriques where id_rubrique=".$tmp;
$result2 = spip_query($query2);
$row2 = spip_fetch_array($result2);
$chemin[$i] = $row2['titre'];
//on vérifie l'existence des répertoires et on les crée le cas échéant
$repertoire = $racine.join("/",$chemin);
if(!is_dir($repertoire))
$ok = mkdir($repertoire,0666);
$i++;
}
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
C'est quoi tes spip trucs ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
$racine, ca vaut quoi ?

Et t'as pas un exemple pour des valeurs de variables ?
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
ok,ok...
$racine vaut Q:/ (la racine de mon serveur de fichiers)
les trucs spip , c'est juste les tables de la BDD du CMS SPIP (www.spip.net)
rien de bien grave....
$chemin peut valoir par ex: exploitation/documentation/
mon fichier : processus.pdf
qui est sur mon serveur web dans le repertoire
www/docs/pdf/processus.pdf

le but est de déplacer de manière transparente les fichiers vers:
Q:/exploitation/documentation/processus.pdf

le principe fonctionne depuis mon serveur EasyPHP (je me répète, je sais).
ça coince depuis le serveur web de prod....
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
pardon,
les spip_query et spip_fecth_array sont identiques au mysql_query et mysql_fetch_array : elles ont juste été personnalisé par les concepteurs de SPIP.....
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
hé , La Globule, désolé, mais je dois y aller pour cause d'inondations dans mon coin (Montpellier)..
Je vous retrouve demain (si tout va bien) avec maybe une solution ! :)

++
seb
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Moi y'a un truc que je pige pas.

La racine de ton espace web, c'est Q: ?
Sinon, pourquoi tu prends tout à partir de la racine Q ?
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
nope.
Q: est la racine d'un lecteur réseau qui joue le rôle de serveur de fichiers sur le réseau de l'entreprise.
Mon Serveur Web Apache est sur une autre machine.
Comme j'utilise le CMS SPIP, je ne touche pas au fonctionnement interne, et j'ai juste créé un script qui déplace les fichiers de mon serveur Web vers le lecteur réseau Q:
Et c'est sur Q: que je crée mon arbo de répertoires avec mkdir et que j'ai le Permission Denied...

je ne sais pas si je suis très clair...
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Oui, c'est clair.

Mais le probleme vient peut etre de la configuration d'apache.
Si Apache a definit tel repertoire x comme etant ton "home", theoriquement, tu ne peux pas ecrire ailleurs que dans ce home.
seb
seb
Déconnecté
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
tu crois que j'ai qqc à faire au niveau du httpd.conf de Apache ? passke je crois que c là qu'on définit un doc_root pour le site web, en général monchemin_vers_apache/www/ , non ?
mais je ne pourrais pas lui spécifier 2 chemins : mon www et le serveur Q: ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Je ne sais pas trop en fait :/
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique