Aller au contenu

[Résolu] Page PHP OK, mais exécution par le Planificateur de tâches pas OK


Oonnay

Messages recommandés

Bonjour,

J'ai une page PHP qui fonctionne parfaitement en ligne et je voudrais la faire exécuter quotidiennement par le "Planificateur de tâches" :

/usr/bin/php -f /volume1/web/brs/cron.php >> /volume1/web/brs/log.txt

 

Le "Planificateur de tâches" l'exécute mais cela crée une erreur dès la demande d'ouverture de la base de données dans le code :


Fatal error: Uncaught PDOException: could not find driver in /volume1/web/brs/BdD.php:2
Stack trace:
#0 /volume1/web/brs/BdD.php(2): PDO->__construct('mysql:host=loca...', '******...', '******...')
#1 /volume1/web/brs/cron.php(2): include('/volume1/web/br...')
#2 {main}
  thrown in /volume1/web/brs/BdD.php on line 2

 

Sachant que cela fonctionnait sous DSM6 et plus depuis le passage à DSM7, une idée pour régler ce problème ?

Merci.

Modifié par Oonnay
Lien vers le commentaire
Partager sur d’autres sites

Bonjour
En ligne de commande directe il est probable que l'environnement php utilisé n'ait pas tous les modules de chargés.
Faire un petit script contenant phpinfo (avec sortie dans un fichier) pour vérifier les modules présents serait à mon avis un début de piste

Lien vers le commentaire
Partager sur d’autres sites

Il existe plusieurs environnements PHP sur DSM. En console, entre php suivi de la touche [Tabulation] :

user@DiskStation:~$ php
php        php74      php74-cgi  php74-fpm  php80      php80-cgi  php80-fpm  php82      php82-cgi  php82-fpm  phpdbg74   phpdbg80   phpdbg82

En utilisant le bon shebang au début du script PHP, la ligne d'exécution pourrait se réduire à /volume1/web/brs/cron.php dans le planificateur de tâches :

#!/bin/env php82

echo 'Hello World!';

Je ne sais plus quels exécutables ont les modules inclus. À tester.

Lien vers le commentaire
Partager sur d’autres sites

Le 09/09/2024 à 9:51 AM, DaffY a dit :

Bonjour
En ligne de commande directe il est probable que l'environnement php utilisé n'ait pas tous les modules de chargés.
Faire un petit script contenant phpinfo (avec sortie dans un fichier) pour vérifier les modules présents serait à mon avis un début de piste

Je n'aurais jamais imaginé que cela soit possible. Du coup, une fois pdo_mysql activé, cela marche beaucoup mieux.

Un grand merci pour l'info !

Modifié par Oonnay
Lien vers le commentaire
Partager sur d’autres sites

  • Oonnay a modifié le titre en [Résolu] Page PHP OK, mais exécution par le Planificateur de tâches pas OK
  • Lelolo a modifié le titre en [Résolu] Page PHP OK, mais exécution par le Planificateur de tâches pas OK
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

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.