Bonjour,
j'essaie d'exécuter quelques commandes qui utilisent Wordpress CLI à partir d'un script PHP que je veux exécuter dans une tâche Cron créée sur mon hébergement Web. Le script est censé vérifier régulièrement si une tâche Wordpress existe et, sinon, la reprogrammer.
J'ai installé WP-CLI dans mon répertoire utilisateur:
` $ wp-cli --info
OS: Linux 4.14.232-ovh-vps-grsec-zfs-classid #1 SMP Mon May 10 09:26:52 CEST 2021 x86_64
Shell: /bin/ovh_ssh
PHP binary: /usr/local/php7.2/bin/php
PHP version: 7.2.34
php.ini used: /usr/local/php7.2/etc/php.ini
MySQL binary:
MySQL version:
SQL modes:
WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /home//bin
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.5.0
`
Le script PHP qui utilise WP-CLI s'exécute avec succès en local:
$ more wp_cron_test.php
exec('/home/username/bin/wp-cli cron event list --path=/home/username/path-to-wp --debug', $output, $retval);
print_r($output);
print_r($retval);
?>
$ php wp_cron_test.php
Array
(
[0] => hook next_run_gmt next_run_relative recurrence
[1] => wpgsi_keepalive 2021-11-16 12:35:24 2 minutes 43 seconds 5 minutes
…
Si j'utilise le même script pour définir une tâche cron, j'obtiens une erreur 500:
`
[2021-11-11 11:32:01] ## OVH ## START - 2021-11-11 11:32:01.950800 executing: /usr/local/php7.2/bin/php /homez.1013//bin/wp_cron_test.php
[2021-11-11 11:32:01] Array
[2021-11-11 11:32:01] (
[2021-11-11 11:32:01] [0] => Status: 500 Internal Server Error
[2021-11-11 11:32:01] [1] => X-Powered-By: PHP/5.4
[2021-11-11 11:32:01] [2] => Content-type: text/html
[2021-11-11 11:32:01] [3] =>
[2021-11-11 11:32:01] )
[2021-11-11 11:32:01] 255
`
Le paramétrage de mon cron job est le suivant:
J'ai essayé plusieurs choses mais rien n'a marché:
1. Faire un chdir dans le répertoire d'installation Wordpress avant l'exécution de la commande WP-CLI
2. Copier le script dans ce répertoire et l'exécuter de là.
3. Utiliser l'environnement PHP 5.4 à la place de PHP 7.2 dans le paramétrage de ma tache Cron.
4. Utilisez un script bash avec l'option Environnement=Autre
5. Essayer des differents commandes wp-cli (par exemple "wp-cli --info")
Je n'ai plus d'idées. Peut-être que, étant donné que le planificateur cron est centralisé et le script est lancé à distance, il y a des paramètres d'environnement qui manquent.
Avez-vous des idées? Avez-vous eu le même souci?
Merci beaucoup d'avance!
