Problème de création répertoire "erreurs" sur serveur

patou007
Invité n'ayant pas de compte PHPfrance

27 juil. 2016, 12:15

Bonjour,

Je souhaites créer un répertoire sur un serveur dans mon répertoire de travail /home/padalber/.public_html
J'ai réussi à crée un répertoire qui s'appelle "logs" qui se trouve dans ce répertoire.
Avec mon script pas de souci pour la création de /home/padalber/.public_html/logs qui contient les logs par date

J'ai essayé de faire la même chose pour la création d'un répertoire "erreurs" mais ça ne fonctionne pas

Voice mon bout de code qui est intégré à la fin du script principal "pl3_rhxls_import_dev.php" se trouvant dans mon répertoire de travail :

Code : Tout sélectionner

$tab_debug=ob_get_contents(); ob_end_clean(); $log_mode=""; $error_mode=""; $current_date=date('d-m-Y H'); $path_log='logs/'.$current_date; $path_errors='/errors/'.$current_date; if(!file_exists($path_log)) { if (!mkdir($path_log, 0777)) { die('Echec lors de la création du répertoire...'); } } if(!file_exists($path_errors)) { if (!mkdir($path_errors, 0777)) { die('Echec lors de la création du répertoire...'); } } $log = "Exécution du script à " . date( 'd-m-Y H:i:s' ); $err_date_message = "Erreurs du script à " . date( 'd-m-Y H:i:s' ); if($mode_creation==true){ $log_mode="create"; $error_mode="create"; }; $fichier_log=fopen($path_log.'/test_'.$log_mode.'.log','a+'); $fichier_errors=fopen($path_errors.'/errors_'.$error_mode,'a+'); fwrite($fichier_log,$log); fwrite($fichier_log,$tab_debug); fwrite($fichier_log,$noncritical_errors); fwrite($fichier_errors,$err_date_message); fwrite($fichier_errors,$noncritical_errors); fclose($fichier_log); fclose(fichier_errors); echo 'titi'; echo 'tr'.$noncritical_errors.'df';echo 'bonj'; var_dump($noncritical_errors); echo getcwd() . "\n"; // fin my_exit(0);
et le message d'erreur:

Warning: mkdir(): No such file or directory in /home/padalber/.public_html/pl3_rhxls_import_dev.php on line 4147 Echec lors de la création du répertoire...


Pouvez-vous m'aider à résoudre ce problème ?

Merci :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 juil. 2016, 13:26

salut,

c'est simple $path_errors='/errors/'.$current_date;
=> cherche a créer un répertoire dans /errors or y a peu de chance qu'il y ai un répertoire "errors" juste sous la racine et encore moins que tu puisse y accéder :)

pour résoudre ton problème enlève le / devant errors.

pour éviter cela utilise plutôt un chemin absolue (que tu retrouve avec dirname couplé avec __FILE__, par exemple).

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

27 juil. 2016, 13:56

Bonjour,

J'ai testé et le fait d'enlever le '/ ' devant errors ne résout pas le problème.
En fait au début j'avais dèja essayé sans le / mais j'avais et c'est toujours la cas le même message d'erreur.

D'autres solutions à me proposer ?

Merci :D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

27 juil. 2016, 16:47

et ça fait quoi sans le / ?
si cela fonctionne pour l'autre pourquoi cela ne le ferais pas pour celui ci ?

des idées j'en ai plein :)

- il y a d'autre info avec le message ?
- le répertorie existe déjà ?
- les espaces dans le nom de répertoire c'est généralement pas une bonne idée ;)
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

27 juil. 2016, 17:12

Sans le / j'ai le même message d'erreur que j'avait quand je mets:

Warning: mkdir(): No such file or directory in /home/padalber/.public_html/pl3_rhxls_import_dev.php on line 4147 Echec lors de la création du répertoire...

Et C'est justement ce que je n'arrive pas comprendre pourquoi cela fonctionne avec la gestion des logs en mettant $path_log='logs/'.$current_date; et que cela ne fonctionne pas avec si je fais la même la chose pour la gestion des erreurs. Je précise que le répertoire errors n'existe pas dèja dans mon répertoire de travail /home/padalber/.public_html. Normalement il le crée s'il n'existe pas avec le code que j'ai ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 juil. 2016, 09:00

Je précise que le répertoire errors n'existe pas dèja dans mon répertoire de travail /home/padalber/.public_html. Normalement il le crée s'il n'existe pas avec le code que j'ai ?
non il faut indiquer le troisième paramètre à true => http://php.net/manual/fr/function.mkdir.php


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 8 Messages

28 juil. 2016, 10:05

Bonjour,

En en mettant le troisième paramètre à true , j'obtient le message d'erreur suivant:

Warning: mkdir(): Permission denied in /home/padalber/.public_html/pl3_rhxls_import_dev.php on line 4147 Echec lors de la création du répertoire...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 juil. 2016, 10:39

l'utilisateur qui fait tourner php à le droit d'écrire dans ton home ?
si tu crée le répertoire errors avec les droits qui vont bien c'est mieux ?
le 0777 n'est pas une solution hein => http://www.commitstrip.com/fr/2016/06/29/chmod-what/ :-)~


@+
Il en faut peu pour être heureux ......