开发者

stream_socket_client() fails when using in CRON job

I have a script that runs fine in the browser, however fails when run through CRON.

Specifically, the script is using stream_socket_client() to create a secure socket, however despite runn开发者_如何学Pythoning fine when I run through the browser, the CRON side fails with the following errors:

PHP Warning: stream_socket_client(): Failed to enable crypto in /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php on line 18 PHP Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php on line 18

I am using the following command to run the CRON:

0-59 * * * * php -q httpdocs/API/testSend.php

Is there any reason for the problem via CRON? Can anyone give me any advice on how I can run this in CRON?


I was having the same problem and found that by running php from the same directory from cron as from the command line that it worked. That is the cron entry would look like:

0-59 * * * * cd <target directory>; /usr/bin/php -q httpdocs/API/testSend.php


if you running the file from the command line maybe try to give the full path to the ck.pem file

change the line : stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');

to

stream_context_set_option($ctx, 'ssl', 'local_cert', '/path/to/your/file/ck.pem');

work for me


Two things I have changed which resolved this for me:

Turned off safe mode in Plesk for PHP.

Slightly altered my cron command to:

0-59 * * * * /usr/bin/php -q httpdocs/API/testSend.php
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜