2 votes

Php ne crée pas de fichier lorsqu'il est exécuté avec cronjob

J'ai un fichier php très simple, qui crée un document texte à chaque fois qu'il s'exécute :

$date = date('Y-m-d H-i-s', time());
$log_name = "Cronjob". $date;
if($fh = fopen($log_name,'w')){
    fwrite($fh, print_r($date));
    fclose($fh);
}

Lorsque j'exécute le fichier en utilisant mon navigateur, un fichier txt est créé sur mon serveur. Lorsque j'exécute le fichier avec un cronjob, cela NE crée pas de fichier txt. Quand je vais dans private > cron.log sur mon serveur, je vois que le cronjob fonctionne bien et que le résultat est imprimé dans le cron.log.

Quelqu'un peut-il me dire pourquoi? J'ai besoin d'écrire ce fichier sur le serveur :)

2voto

DocRattie Points 1219

Lorsqu'il est exécuté dans une tâche cron, vous devez fournir le chemin complet. Le script ne s'exécute pas dans le répertoire où il se trouve, et par conséquent les chemins relatifs ne fonctionneront pas.

$chemin_absolu = "quel que soit votre chemin absolu"; // peut-être quelque chose comme /var/www/html/
$nom_log = $chemin_absolu."Cronjob". $date;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X