bostffocher Posté(e) le 5 janvier 2017 Posté(e) le 5 janvier 2017 Bonjour à tous, J'ai programé un CRON qui appelle une page php à l'aide du planificateur de tache d'un syno 212j. Sur cette page j'ai des include() qui appelle d'autre script php. Au début j'avais mis un chemin relatif du type : include("../../../inc.php/connexion.php"); mais ca ne marchait pas avec le CRON - alors que ca marchait tres bien enn test http - donc j'ai changer avec : include("/volume1/web/xxxxx.fr/xxxxxx/inc.php/connexion.php"); Du coup ca à l'air de bien vouloir trouver le fichier appelé. Sauf que la connexion à la base de donnée ne fonctionne pas avec les paramètres habituels - qui fonctionne très bien dans le cadre d'un appel http (je pense que le host n'est pas bon et peut être le port) : $PARAM_hote='localhost'; // le chemin vers le serveur $PARAM_port=3306;//port $PARAM_nom_bd='xxxxxx'; // le nom de la base de données $PARAM_utilisateur='xxxxx'; // nom d'utilisateur pour se connecter $PARAM_mot_passe='xxxxxx'; // mot de passe de l'utilisateur pour se connecter try{ $bdd_gardenIce = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.'dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch(Exception $e){ echo 'Une erreur connect BDD est survenue !'."<br />"; die(); } Donc 2 questions : 1- Peux-t-on mettre des chemin relatif dans les include et sous quelle forme ? 2 - La connexion à la BDD MariaDB, host et port ? Merci d'avance de vos réponse. 0 Citer
lordtaki Posté(e) le 6 janvier 2017 Posté(e) le 6 janvier 2017 Une tâche en cron n'a pas le même environnement (variables entre autres) que lorsqu'on teste dans une session. L'utilisation de chemin relatif est déconseillée parce qu'à part savoir exactement la localisation (pwd) lors de l'éxécution du script cela foutra toujours la grouille (en jargon sysadmin). Et un chemin absolu c'est tellement plus lisible et maintenable. Par contre à premi-re vue pour la connexion MySQL cela devrait être bon si les paramètres sont évidemment corrects. 0 Citer
bostffocher Posté(e) le 6 janvier 2017 Auteur Posté(e) le 6 janvier 2017 ok merci pour la réponse. Je vais creuser pour essayer de voir ou est l'erreure sur la BDD.... Si quelqu'un à une piste, je suis preneur. 0 Citer
bostffocher Posté(e) le 6 janvier 2017 Auteur Posté(e) le 6 janvier 2017 Apres retest la reponse à catch(Exception $e) catch(Exception $e) { echo $e->getMessage(); die(); } est "could not find driver" Ca parle a quelqu'un ? 0 Citer
bostffocher Posté(e) le 20 janvier 2017 Auteur Posté(e) le 20 janvier 2017 Je répond à moi-même si ca peux aider (parce qe là j'ai galéré pour trouver la réponse) : Dans le cron mettre : php /volume1/web/Chemin/fichier.php ou php56 /volume1/web/Chemin/fichier.php et pas juste : /volume1/web/Chemin/fichier.php Pour dire, si j'ai tout comprris qu'il s'agit d'interpréter un script php. 0 Citer
Fenrir Posté(e) le 21 janvier 2017 Posté(e) le 21 janvier 2017 Autre façon de faire : #!/bin/php en entête de ton fichier, sinon le shell ne peut pas savoir quoi utiliser 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.