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 !
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);
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++;
}
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....
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.....
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 ! :)
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...
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.
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: ?