Problème CRON OVH

Résolu/Fermé
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 1 févr. 2018 à 15:29
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 - 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
A voir également:

9 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
2 févr. 2018 à 08:59
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,
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
2 févr. 2018 à 22:52
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
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
3 févr. 2018 à 16:47
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.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
3 févr. 2018 à 17:04
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...)

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
3 févr. 2018 à 21:50
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);
		}
	}
?>	
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
3 févr. 2018 à 22:02
Elle est ou la connexion à ta bdd ??

Au passage.. applique ceci
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

.
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
3 févr. 2018 à 22:37
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);
    ?>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
3 févr. 2018 à 22:43
Tu l'inclus où l'init dans le script que tu nous montres ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
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é ?
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
4 févr. 2018 à 08:21
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.
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
4 févr. 2018 à 11:15
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);
		}
	}
?>	
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 févr. 2018 à 11:38
Ah et dans ton if c'est == qu'il faut mettre
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 févr. 2018 à 11:39
Pour les anniversaires... Ne mets pas l'année dans ta requête
0
LaChaux78 Messages postés 564 Date d'inscription lundi 25 juillet 2016 Statut Membre Dernière intervention 31 mars 2023 32
4 févr. 2018 à 15:12
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.
0