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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top