stream_socket_client () завершается ошибкой при использовании в задании CRON - PullRequest
1 голос
/ 13 сентября 2010

У меня есть скрипт, который отлично работает в браузере, но не работает при запуске через CRON.

В частности, сценарий использует stream_socket_client() для создания защищенного сокета, однако, несмотря на то, что он работает нормально, когда я запускаю через браузер, на стороне CRON возникают следующие ошибки:

Предупреждение PHP: stream_socket_client (): не удалось включить шифрование в /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php в строке 18 Предупреждение PHP: stream_socket_client (): невозможно подключиться к ssl: //gateway.sandbox.push.apple.com: 2195 (неизвестная ошибка) в /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php в строка 18

Я использую следующую команду для запуска CRON:

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

Есть ли причина проблемы через CRON? Кто-нибудь может дать мне какой-нибудь совет, как я могу запустить это в CRON?

Ответы [ 3 ]

1 голос
/ 01 марта 2012

У меня была та же проблема, и я обнаружил, что, запустив php из того же каталога из cron, что и из командной строки, с которой он работал.То есть запись cron будет выглядеть так:

0-59 * * * * cd <target directory>; /usr/bin/php -q httpdocs/API/testSend.php
1 голос
/ 07 декабря 2014

если вы запускаете файл из командной строки, возможно, попробуйте указать полный путь к файлу ck.pem

измените строку: stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');

на

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

работа для меня

0 голосов
/ 13 сентября 2010

Две вещи, которые я изменил, решили эту проблему для меня:

Выключил безопасный режим в Plesk для PHP.

Немного изменил мою команду cron:

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