Menu

Problème CRON OVH [Résolu]

LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 1 févr. 2018 à 15:29 - Dernière réponse : LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention
- 4 févr. 2018 à 15:12
Bonjour,
Les taches CRON chez OVH ne sont pas si simple à mettre en place, j'ai contacté plusieurs fois le service client et c'est tout et son contraire à croire qu'ils ne sont pas capables à créer une tache planifiée, alors je fais appel à vous pour m'aider.
Toujours l'exitcode à 255. Pour la commande à exécuter j'ai tout essayé avec le chemin absolu.
Pour info: le point avec le slash devant les www ne peuvent être enlevés.
voici le log d'erreur
[2018-02-01 11:34:04] ## OVH ## START - 2018-02-01 11:34:04.212697 executing: /usr/local/php5.6/bin/php /homez.650/cliquede/./www/libs/envoi_anniv.php 
[2018-02-01 11:34:04] 
[2018-02-01 11:34:04] 
[2018-02-01 11:34:04] ## OVH ## END - 2018-02-01 10:34:04.299223 exitcode: 255

Merci beaucoup
Afficher la suite 

15 réponses

Répondre au sujet
Pitet 2378 Messages postés lundi 11 février 2013Date d'inscription 2 février 2018 Dernière intervention - 2 févr. 2018 à 08:59
0
Utile
Salut,

Si le retour "exitcode 255" correspond à une erreur lors de l'exécution du script php, il faudrait idéalement récupérer le message d'erreur PHP correspondant pour cibler et corriger le problème.

Le message d'erreur PHP devrait être dans le journal d'erreur de ton serveur web (error.log pour Apache2), sinon tu peux aussi activer l'enregistrement/l'affichage des erreurs PHP au début de ton script envoi_anniv.php et relancer ta tâche cron pour récupérer/voir le message d'erreur.

Bonne journée,
Commenter la réponse de Pitet
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 2 févr. 2018 à 22:52
0
Utile
Bonjour,
Merci déjà pour ton retour.
En fait donc je ne peux pas récuperer et voir le message d'erreur puisque la tache CRON ne se lance pas.
Maintenant pourquoi j'ai exitcode à 255 d'après ce que j'ai pu voir par ci par là cela viendrait du fait que ma commande devrait être le chemin absolu.
Et pour les logs d'erreur de mon serveur j'ai trouvé cela...
Cela reste très complexe pour un novice.
Merci en tout cas d'essayer de m'aider.
AH10157: FastCGI: An error happend on Fastcgi processing, fallback to CGI
Commenter la réponse de LaChaux78
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 3 févr. 2018 à 16:47
0
Utile
Bonjour,
Si quelqu'un peut m'aider sur mon problème CRON OVH. J'ai suivi les instructions côté OVH mais cela à l'air plus compliqué qu'il n'y parait.
Merci pour votre aide.
Commenter la réponse de LaChaux78
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 3 févr. 2018 à 17:04
0
Utile
Bonjour,

Commence par remplacer le contenu de ton script par une commande php plus simple
(comme juste l'écriture d'un "coucou" dans un fichier text )
et regarde si la tâche se lance ou non.
Si elle se lance... c'est que le souci ne vient pas d'un pb de chemin ... mais d'un souci dans ton code actuel (qu'il faudrait éventuellement nous montrer au passage...)

Commenter la réponse de jordane45
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 3 févr. 2018 à 21:50
0
Utile
1
Bonjour,
J'ai effectivement fait ce que tu m'a suggéré à savoir créé un fichier txt et là la tache cron à réussi avec un exitcode à 0.
[2018-02-03 21:34:04] ## OVH ## START - 2018-02-03 21:34:04.444043 executing: /usr/local/php5.6/bin/php /homez.650/cliquede/./www/libs/envoi_anniv.txt 
[2018-02-03 21:34:04] salut
[2018-02-03 21:34:04] ## OVH ## END - 2018-02-03 20:34:04.482293 exitcode: 0

Je te donne mon script.
Merci
<?php
$today 	= date("Y/m/d");
$mois	= date('m');  
$jour 	= date('d');

	$sql = "SELECT nom, prenom, dnaiss, email
			FROM cdc_personnes
				LEFT JOIN cdc_adherer ON cdc_personnes.idpers = cdc_adherer.idpers
			WHERE annee = ?
			AND MONTH(dnaiss) = ?
			AND DAY(dnaiss) = ?";
	$requete = $bdd->prepare($sql);
	$requete->execute(array($aadh,$mois,$jour));

	while ($donnees = $requete->fetch()) {
		$anniv_date = $donnees->dnaiss;
		
		if ($today = $anniv_date) {
			// Adresse email des destinataires
			$destinataire = $donnees->email;
			// Titre de l'email
			$sujet = 'Joyeux Anniversaire';
			// Contenu du message de l'email
			$message = '<html>';
			$message .= '<body><p>Bonjour'.$donnees->prenom.'<br/>';
			$message .= 'Je te souhaite un bon anniversaire<br/>';
			$message .= '</html>';
			// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
			$headers = 'MIME-Version: 1.0'."\r\n";
			$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
			$headers .= 'From:"monsite"<>'."\n";
			// Fonction principale qui envoi l'email
			mail($destinataire, $sujet, $message, $headers);
		}
	}
?>	
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 3 févr. 2018 à 22:02
Elle est ou la connexion à ta bdd ??

Au passage.. applique ceci
http://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs

.
Commenter la réponse de LaChaux78
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 3 févr. 2018 à 22:37
0
Utile
2
Ma connexion à ma BDD est dans un fichier init.php
Et j'ai cette gestion d'erreur en début de fichier que j'ai oublié de mettre dans mon post précédent.
    <?php
    // Afficher les erreurs à l'écran
    ini_set('display_errors', 1);
    // Enregistrer les erreurs dans un fichier de log
    ini_set('log_errors', 1);
    // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
    ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
    // Afficher les erreurs et les avertissements
    error_reporting(e_all);
    ?>
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 3 févr. 2018 à 22:43
Tu l'inclus où l'init dans le script que tu nous montres ?
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 3 févr. 2018 à 22:45
Et la gestion des erreurs pdo...tu la gères comment si tu n'appliques pas ce qu'il y a dans le lien que je t'ai donné ?
Commenter la réponse de LaChaux78
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 4 févr. 2018 à 08:21
0
Utile
Bonjour,
Oups... oublié l'include.
Je vais modifier ma tache CRON pour qu'elle déclenche à 9h.
Rajouter la gestion des erreurs dans ma requète et voir ce que ça donne.
merci je te redis ce qu'il en ressort.
Commenter la réponse de LaChaux78
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 4 févr. 2018 à 11:15
0
Utile
3
Alors voilà....
J'ai passé 3 jours dessus sans me rendre compte que je n'avais pas mis d'include à ma BDD.
Donc avec mon script j'ai bien reçu le mail en me souhaitant un joyeux anniversaire bien sur j'avais modifié ma date de naissance mis en date d'aujourd'hui.
Par contre ce que je pensais que ça allais générer plusieurs envoi de mail vu la requète comme elle est construite mais à priori non uniquement 1 mail reçu.
<?php require("init.php"); ?>
    <?php
//require("init.php");
    // Afficher les erreurs à l'écran
    ini_set('display_errors', 1);
    // Enregistrer les erreurs dans un fichier de log
    ini_set('log_errors', 1);
    // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
    ini_set('error_log', dirname(__file__) . '/log_error_php.txt');
    // Afficher les erreurs et les avertissements
    error_reporting(e_all);
    ?>
<?php
$quant = date("z"); // Quantième du jour dans l'année. NB: le 01/09/AAAAA est le 245è jour de l'année
// Si l'on est avant le 01/09, l'année d'adhésion ($aadh) est l'année précédente, sinon c'est l'année courante
if($quant < 245) { $aadh = date("Y")-1; } else { $aadh = date("Y"); }
?>

<?php
$DateJour 	= date("m/d");
$mois	    = date('m');  
$jour 	    = date('d');

	$sql = "SELECT nom, prenom, dnaiss, email
			FROM cdc_personnes
				LEFT JOIN cdc_adherer ON cdc_personnes.idpers = cdc_adherer.idpers
			WHERE annee = ?
			AND MONTH(dnaiss) = ?
			AND DAY(dnaiss) = ?";
try{
	$requete = $bdd->prepare($sql);
	$requete->execute(array($aadh,$mois,$jour));
}catch(Exception $e){
  // en cas d'erreur :
   echo " Erreur ! ".$e->getMessage();
   echo " Les datas : " ;
  print_r($aadh,$mois,$jour);
}
	while ($donnees = $requete->fetch()) {
		$anniv_date = $donnees->dnaiss;
		
		if ($DateJour = $anniv_date) {
			// Adresse email des destinataires
			$destinataire = $donnees->email;
			// Titre de l'email
			$sujet = 'Joyeux Anniversaire';
			// Contenu du message de l'email
			$message = '<html>';
			$message .= '<body><p>Bonjour' .$donnees->prenom.'<br/>';
			$message .= 'Je te souhaite un bon anniversaire...<br/>';
			$message .= '</html>';
			// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
			$headers = 'MIME-Version: 1.0'."\r\n";
			$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
			$headers .= 'From:"cliquedecruet"<cliquede@60gp.ovh.net>'."\n";
			// Fonction principale qui envoi l'email
			mail($destinataire, $sujet, $message, $headers);
		}
	}
?>	
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 4 févr. 2018 à 11:37
Là c'est une autre question
Merci de mettre celle la en résolue et d'en ouvrir une nouvelle
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 4 févr. 2018 à 11:38
Ah et dans ton if c'est == qu'il faut mettre
jordane45 20050 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 février 2018 Dernière intervention - 4 févr. 2018 à 11:39
Pour les anniversaires... Ne mets pas l'année dans ta requête
Commenter la réponse de LaChaux78
LaChaux78 235 Messages postés lundi 25 juillet 2016Date d'inscription 19 février 2018 Dernière intervention - 4 févr. 2018 à 15:12
0
Utile
Merci j'ai rajouté de double égal et l'année en fait c'est l'année d'adhésion des membres donc les membres concernés pour l'envoi de mail.
Je te remercie j'ai de nouveau fait un essai et tout à l'air de fonctionner.
Commenter la réponse de LaChaux78