[CRON OVH] Est-ce que ce lien relatif va faire fonctionner le CRON ?

Nouveau WRInaute
Bonjour tout le monde et bonne année,

J'ai une tâche planifiée OVH (CRON) qui fonctionne avec ce code minimaliste :

Code:
<?php
// the message
$msg = "Le CRON fonctionne !!! un peu du spam pour la bonne cause BONNE ANNEE !!!!";

// send email
mail("monmail@gmail.com","COOOOOOOLLLLL",$msg);
?>

Cela envoie un mail toutes les heures 50 au destinataire.

Je voudrais rendre plus compliqué ce code afin d'aller dans une bd prendre des informations et les envoyer à plusieurs destinataires.

J'ai lu qu'on devait utiliser des chemins absolus et non relatifs, voici ma question :

Si j'ai ceci dans mon code, est-ce que ça va fonctionner ?

Code:
<?php
    require_once("vendor/autoload.php");
    require_once ('config/ConnexionDB.php');

Je confirme que quand j'encode l'url du script dans mon navigateur, je reçois les mails (c'est donc un test manuel).

Est-ce que ça va fonctionner automatiquement ?

Merci pour l'aide.

bee
 
WRInaute discret
Ahh les crons sous OVH... une joie sans cesse renouvellée.
Il faut utiliser des chemins absolus.
Et il faut que la version PHP du CRON soit la même que la version globale de l'hébergement.
 
Nouveau WRInaute
niap a dit:
Ahh les crons sous OVH... une joie sans cesse renouvellée.
Il faut utiliser des chemins absolus.
Et il faut que la version PHP du CRON soit la même que la version globale de l'hébergement.

Merci pour ta réponse et bonne année.

Donc, mon chemin n'est pas ok :
Code:
<?php
    require_once("vendor/autoload.php");
    require_once ('config/ConnexionDB.php');

Comment connaître la version PHP du CRON ?

Pour la version php globale, c'est la 7.0 :

php.png


Si je regarde mes logs, je vois ceci :

[2017-01-01 11:12:02] ## OVH ## START - 2017-01-01 11:12:02.809245 executing: /usr/local/php7.0/bin/php /homez.2193/likemywora/./www/lmw_dev/ristourne.php

J'en déduis que je dois utiliser ce chemin ? :

/usr/local/php7.0/bin/php /homez.2193/likemywora/./www/lmw_dev/ristourne.php


ou

Code:
require_once("www/lmw_dev/vendor/autoload.php");
    require_once ('www/lmw_dev/config/ConnexionDB.php');

Je ne comprends pas bien le /./ juste avant le www

Merci encore pour ton aide.

bee
 
WRInaute discret
Pour le chemin tu peux le récupérer avec dirname
Code:
$path = dirname(__FILE__).'/';
echo $path;

La version de PHP utilisé par le cron est défini dans Ajouter une planification sous language.
 
Nouveau WRInaute
Merci beaucoup pour ta réponse (surtout un jour férié).

Mon path donne ceci :

/home/likemywora/www/lmw_dev/

J'ai donc mis ceci :

Code:
require_once("/home/likemywora/www/lmw_dev/vendor/autoload.php");
require_once ('/home/likemywora/www/lmw_dev/config/ConnexionDB.php');

Je te tiens au courant si ça fonctionne ou pas.

Encore merci.
 
Nouveau WRInaute
Voilà, le problème semble réglé, et ce, grâce à toi.

Je t'en remercie mille fois !!!!

Donc, pour ceux qui ont le même problème :

faire ce qui est indiqué ci-dessus, un echo de __DIR__ et l'ajouter à vos différents include ou requires.

Il faut également utiliser la même version php pour le cron et la version PHP.

On peut directement tester le cron en y metttant l'url dans la barre du navigateur.

Encore merci pour tout.
 
Discussions similaires
Haut