stream_socket_client () échoue lors de l'utilisation en travail CRON
-
02-10-2019 - |
Question
J'ai un script qui fonctionne bien dans le navigateur, ne cependant lorsqu'il est exécuté par CRON.
Plus précisément, le script utilise stream_socket_client()
pour créer un socket sécurisé, mais malgré fonctionne bien quand je cours à travers le navigateur, le côté CRON échoue avec les erreurs suivantes:
PHP Warning: stream_socket_client (): Impossible d'activer crypto dans /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php sur la ligne 18 PHP Warning: stream_socket_client (): impossible de se connecter à ssl: //gateway.sandbox.push.apple.com: 2195 (erreur inconnue) dans le /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php ligne 18
J'utilise la commande suivante pour exécuter le CRON:
0-59 * * * * php -q httpdocs/API/testSend.php
Y at-il raison du problème via CRON? Quelqu'un peut-il me donner des conseils sur la façon dont je peux exécuter ce en CRON?
La solution 3
Deux choses que j'ai changé, ce qui a résolu ce pour moi:
Désactivée mode sans échec dans Plesk pour PHP.
Un peu modifié ma commande cron pour:
0-59 * * * * /usr/bin/php -q httpdocs/API/testSend.php
Autres conseils
Je faisais le même problème et a constaté que en exécutant php à partir du même répertoire à partir de cron la ligne de commande que cela a fonctionné. C'est l'entrée cron ressemblerait à ceci:
0-59 * * * * cd <target directory>; /usr/bin/php -q httpdocs/API/testSend.php
Si vous exécutez le fichier à partir de la ligne de commande peut-être essayer de donner le chemin complet vers le fichier ck.pem
changer la ligne: stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
à
stream_context_set_option($ctx, 'ssl', 'local_cert', '/path/to/your/file/ck.pem');
travail pour moi