Bonjour à tous,
Je me casse la tête avec Cron : je souhaiterais simplement qu'un fichier php, appelé par Cron, exécute un autre fichier php.
Voici mon fichier cron_file.php appelé par une commande CRON :
// Essai 1
define('ROOT',dirname( __FILE__ ));
exec("php -f ".ROOT."/script.php");
// Essai 2
exec("php -f /home/icolleu/www/script.php");
// Essai 3
$chemin = __DIR__;
exec("php -f ".$chemin."/script.php");
// Essai 4
exec("php -f ".__DIR__."/script.php");
?>
Le fichier script.php suivant ne fait que placer la valeur 'success' dans ma base de données, dans le seul but de savoir s'il a bien été executé :
$mysqli = new mysqli("database","login","pwd","database");
$mysqli->query(" UPDATE divers SET valeur_divers = 'success' WHERE nom_divers = 'test' ");
$mysqli->close();
?>
Mon problème est que le fichier 'script.php' n'est jamais exécuté (quelle que que soit la syntaxe) lorsque CRON appelle le fichier 'cron_file.php'. Cependant, cela marche très bien si j'appelle 'cron_file.php' par mon naviguateur.
Je précise :
- que je suis en hébergement mutualisé (Cloud Web)
- que j'ai bien lu la documentation OVH sur Cron, notamment avec le chemin défini par __DIR__
- vous allez me dire "tu n'as qu'à appeler directement 'script.php' par Cron". En fait, l'étape suivante est d'appeler 'script.php' avec des paramètres dans la commande, ce qu'on ne peut pas faire directement avec Cron.
Pouvez-vous m'aider ?
Est-ce exec() qui est empêché d’exécution en "Crontab" ?
Y-a-t-il d'autres astuces pour arriver à mes fins ?
Je vous remercie
Aurélien
Cron : Appeler un fichier php grâce à un autre fichier php ?
Related questions
- Connexion à mon compte client
153788
13.02.2019 09:51
- Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS
126837
03.09.2018 14:46
- reCAPTCHA erreur pour le propriétaire du site : clé de site non valide
111020
14.02.2019 16:17
- [FAQ] Comment mettre à jour mon site pour supporter Apache 2.4 ?
98470
28.07.2017 11:39
- Passage en php 7.4
97612
30.06.2020 05:05
- Augmenter taille PHP Post Max Size sur mutualisé ?
92001
04.12.2019 21:52
- The requested URL / was not found on this server
91106
02.03.2017 18:25
- Deploy d'un projet Node JS
91024
12.10.2016 20:18
- NextCloud sur mutualisé
90961
07.04.2017 08:42
- Ce site est inaccessible Impossible de trouver l'adresse DNS du serveur
90793
16.10.2016 16:24
Pourquoi tu n'appelles pas le second script en tant que routine du premier plutôt qu'en tant que script? Et là tu pourras passer des paramètres.
Bonjour CM63,
Merci pour votre réponse.
Par 'routine', tu veux dire une fonction (avec paramètre d'entrée) qui appellerait mon script.php grâce à un include ? Il faut que j'y réfléchisse, ce pourrait être une solution en effet.
Sinon, je suis quand-même curieux de comprendre l'origine de mon problème (exec qui est bloqué ou pas par OVH).
Aurélien
Non le exec() n'est pas bloqué par OVH, je l'utilise souvent, mais pas pour faire php -f , si j'avais eu à faire cela j'aurais plutôt fait une routine php. Moi j'utilise exec() pour faire des archives (tar cvf ) ou pour créer des liens (ln -s) .