Aller au contenu

appel php include() et connexion MariaDB

Featured Replies

Posté(e)

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.

 

Posté(e)

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.

Posté(e)
  • Auteur

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.

Posté(e)
  • Auteur

Apres retest la reponse à

catch(Exception $e)

catch(Exception $e)
{
        echo $e->getMessage();
        die();
}

est

"could not find driver"

Ca parle a quelqu'un ?

  • 2 semaines après...
Posté(e)
  • Auteur

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.

 

Posté(e)

Autre façon de faire :

#!/bin/php

en entête de ton fichier, sinon le shell ne peut pas savoir quoi utiliser

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.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.