1

我有一个在浏览器中运行良好的脚本,但是在通过 CRON 运行时失败。

具体来说,该脚本stream_socket_client()用于创建安全套接字,但是尽管在我通过浏览器运行时运行良好,但 CRON 端失败并出现以下错误:

PHP 警告:stream_socket_client():无法在第 18 行的 /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php 中启用加密 PHP 警告:stream_socket_client():无法连接到 ssl://gateway。第 18 行 /var/www/vhosts/tweetheartsapp.com/httpdocs/API/testSend.php 中的 sandbox.push.apple.com:2195(未知错误)

我正在使用以下命令来运行 CRON:

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

通过 CRON 出现问题是否有任何原因?谁能给我任何关于如何在 CRON 中运行它的建议?

4

3 回答 3

1

我遇到了同样的问题,并发现通过从 cron 的同一目录运行 php 与从它工作的命令行运行 php。那就是 cron 条目看起来像:

0-59 * * * * cd <target directory>; /usr/bin/php -q httpdocs/API/testSend.php
于 2012-03-01T02:25:01.643 回答
1

如果您从命令行运行文件,可能会尝试提供 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');

为我工作

于 2014-12-07T07:20:56.840 回答
0

我改变了两件事,为我解决了这个问题:

在 Plesk for PHP 中关闭了安全模式。

将我的 cron 命令稍微更改为:

0-59 * * * * /usr/bin/php -q httpdocs/API/testSend.php
于 2010-09-12T20:54:44.503 回答