Aller au contenu

Cron sur script PHP


djo074

Messages recommandés

Bonjour,

J'ai installé DSM 6, en mode trompe la mort, et badaboom:

Dans mon crontab, j'ai une ligne devant executer un script PHP toutes les minutes :
*/1 *   *   *   *   root    php -f /volume1/web/folder/file.php

Seulement voilà, depuis l'installation, il ne s'execute plus. Or manuellement ça marche et ça remplie ma base de donnée sous PHPmy admin.
Un autre script .sh updatant dans ma domotique la température du Syno, fonctionne normalement.

J'ai également essayé de faire depuis DSM planificateur de tache toutes les minutes également. mais ça ne fonctionne pas non plus:
Script défini par l'utilisateur: /volume1/web/folder/file.php


Si une ame charitable a une idée, d'avance merci.

Djo.

Lien vers le commentaire
Partager sur d’autres sites

Salut, j'ai aussi eu ce souci ! En ssh le php s'éxecute sans souci, mais pas avec le cron. La solution que j'ai trouvée est un peu naze mais elle fonctionne (va savoir pourquoi). J'ai créé un .sh que j'éxecute depuis mon planificateur de tâches, et j'appelle le php depuis celui-ci. Seulement, ça ne fonctionne pas en indiquant le chemin absolu (dans ton cas la commande php /volume1/web/folder/file.php ) . 

Ce qu'il faut faire dans ton sh :

cd volume1/
cd web/
cd folder/
php file.php

Ça semble assez bête mais ça fonctionne :biggrin:

EDIT : C'est normal si ça ne marchait pas dans ton planificateur de tâches, il faut pas mettre /volume1/web/folder/file.php mais  php /volume1/web/folder/file.php )

Si ça fonctionne pas essaie ce que j'ai dit plus haut ^^

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

il y a 5 minutes, pyjama11 a dit :

@devildant, le path est le même, c'est /bin/php

:)

/bin/php /volume1/web/folder/file.php  ne fonctionne pas ?

ou 

/bin/sh -c php /volume1/web/folder/file.php  ? ^^

 

apres autre option avez vous essayer avec un autre user que le root (on sait  jamais)

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

Bonsoir, 

Merci pour vos réponses.
Je n' y arrive pas quelque soit la méthode.
J' obtiens l'erreur suivante :
PHP Fatal error:  Call to undefined function mysqli_connect() in /volume1/web/teleinfo-ed/ecod2sql.php on line 11

Alors qu'avant la mise a jour ça fonctionnait, et de toute façon depuis un navigateur j'écris normalement dans ma base de donnée.

Pô drole!

Merci aux gurus... de m'aider:cry:

 

Djo

Lien vers le commentaire
Partager sur d’autres sites

Bah le php est bien executé, après y'a une erreur dedans.. 

mysqli_connect() est pas reconnu, pourtant c'est une fonction qui devrait l'être. Ce mode de connexion à ta bdd commence est de moins en moins utilisé, peut-être qu'il a été supprimé dans la nouvelle version de php embarquée sur DSM6, essaie peut-être de te connecter avec PDO :

<?php

$instance = new PDO('mysql:host=localhost;dbname=nom_de_ta_bdd;charset=utf8', 'root', 'mot_de_passe');

?>

 

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse Pyjama... et c'est l'heure...

mais ..... toujours pas...... :

PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /volume1/web/teleinfo-ed/ecod2sql.php:13

Stack trace:

#0 /volume1/web/teleinfo-ed/ecod2sql.php(13): PDO->__construct('mysql:host=loca...', 'root', 'pwsd****')


Merci encore...

Bon aller au dodo.

Djo

Lien vers le commentaire
Partager sur d’autres sites

et depuis un invite de commande le script fonctionne normalement ? (l'histoire d’être sur) 

si oui c'est que lors de sont exécution dans le context du cronjob les librairies ne sont pas chargé. donc il va falloir les charger avant l’exécution. 

avec une commande du genre

php -c /etc/php5/cli/php.ini -nf script.php

si vous ne trouvez pas d'info je vous invite a contacter synology soit via le centre d'assistance dans DSM soit depuis leurs site https://account.synology.com/support/support_form.php

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

il y a 20 minutes, lauthdaniel a dit :

Bonjour,

Oui  il fonctionne parfaitement quand je le lance directement depuis mon navigateur internet IE ?

J'ai essayer ta ligne de comande dans le cron, mais toujours rien?

Ci-joint une copie de l'erreur du planificateur de taches

Merci

Capture12.JPG

pour la commande 

php -c /etc/php5/cli/php.ini -nf script.php

 il faut adapter les path je ne sais pas ou se trouve le php.ini sur DSM 6.

ensuite lancer un script depuis le navigateur ou en ligne de commande c'est pas la même chose.

il faut exécuter la commande via ssh pour voir ce que ça donne

Lien vers le commentaire
Partager sur d’autres sites

Il y a 9 heures, iPhilGood a dit :

Salut,

J'étais confronté au même problème.

Tu peux essayer php56 -f /volume1/web/folder/file.php

Il semble qu'il y ait 2 interpréteurs PHP et qu'il n'utilise pas le même en ligne de commande...

bon  a savoir, mais au final un petit mail a synology permettrai d’éclaircir tout ça non  ? 

note ça deja été fait sur le forum en https://forum.synology.com/enu/viewtopic.php?t=105754

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

il y a 5 minutes, darKxyde a dit :

Aucune piste à ce jour.

Ben si, iPhilGood a donné la solution 2 posts plus haut:

Il y a 16 heures, iPhilGood a dit :

Salut,

J'étais confronté au même problème.

Tu peux essayer php56 -f /volume1/web/folder/file.php

Il semble qu'il y ait 2 interpréteurs PHP et qu'il n'utilise pas le même en ligne de commande...

Appropriate PHP CLI --> /usr/local/bin/php56

Lien vers le commentaire
Partager sur d’autres sites

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…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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.