[RESOLU] fopen ne s'exacute pas lancé par cron

Petit nouveau ! | 7 Messages

05 août 2013, 20:13

Bonjour

j'ai un script PHP que je veux lancer via cron. Je veux que mon script s'exécute et écrive dans un fichier log texte

Les test sur le script dans la console fonctionnent : le script s'exécute, mais il n'écrit pas dans le fichier log.
//ecriture du log
$mesagetext = 'blablbalba';
$mylog = fopen('monlog.txt', 'a') or die("can't open file");
fwrite($mylog, $mesagetext);
fclose($mylog);
echo 'ecrit dans le log', "\n";
Je vois bien passer le echo ' ecrit dans le log' mais le fichier n'est pas sécrit. J'ai pourtant mis les autorisations à 777 sur le script et le fichier texte ( pour être tranquille). Le problème doit venir d'ailleurs.

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

05 août 2013, 20:18

salut,


que retourne frwite ?

tu peux réduire ton script avec un fil_put_contents (+ le flag append).

est ce qu'il y a quelque chose dans le log de php ?

est ce que est sur de l'emplacement où tu cherche le fichier ? (dans le répertoire où la commande est lancée).

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

Petit nouveau ! | 7 Messages

05 août 2013, 21:08

mais il se passe un truc totalement incompréhensible qui m'a fait trouver la solution

j'ai ajouté dans mon script
echo file_get_contents('monlog.txt');
Et découvert tout le logs du jour ou j'ai lancé mon script via la console

EN fait quand on lance un fopen depuis la console il faut donner le chemin absolu du fichier. Dans mon cas
Il ne faut pas écrire
$mylog = fopen('monlog.txt', 'a') or die("can't open file");
mais
$mylog = fopen('/var/www/monsite.com/web/mondossier/monlog.txt', 'a') or die("can't open file");
et là ça marche. Merci pour le conseil d'écriture simplifié je vais faire ça .

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

05 août 2013, 21:22

Ah ba wé le chemin relatif c'est la couillonnade à tous les coups :)

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton vert "Mettre le sujet en tant que Résolu" situé en haut de la page à côté du titre du sujet.
Il en faut peu pour être heureux ......

Petit nouveau ! | 7 Messages

05 août 2013, 21:52

Ok ami modérateur, sorry, et merci pour l'aide que chacun apporte sur ce forum

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

05 août 2013, 22:14

mais de rien :)
Il en faut peu pour être heureux ......