繁体   English   中英

phpseclib-通过CRON运行但在手动执行时不发生错误

[英]phpseclib - Errors when running via CRON but not when execute manually

我在使用composer安装的网站上使用phpseclib 2.0。 我编写了一个php函数,该函数基本上通过SFTP连接到远程服务器,并在预定义目录中下载文件。 通过使用cURL的CRON调用此函数,并且运行良好。 上周,它停止了工作。 我启用了日志记录,这就是我得到的。

Severity: User Notice
Message:  Error reading channel data
Filename: Net/SSH2.php
Line Number: 3579

Severity: User Notice
Message:  Connection closed prematurely
Filename: Net/SSH2.php
Line Number: 3025

Severity: User Notice
Message:  Connection closed by server
Filename: Net/SSH2.php
Line Number: 3373

Severity: User Notice
Message:  Expected SSH_FXP_VERSION
Filename: Net/SFTP.php
Line Number: 471

当我检查用于存储下载文件内容的表时,没有更新。

奇怪的是,如果我要从CRON执行确切的命令,则一切正常,并且表已更新。 我已经检查了CROND日志,并且可以确认它使用的权限与其相同的用户相同,即。 根。 任何人都对此问题有任何见识,因为我不知道。 我已经从使用cURL更改为使用httpie,但是结果相同。 在命令行上手动执行时有效,但在CRON执行时失败。

我所做的唯一服务器更改是将PHP从5.6版升级到7.0版。 那可能是原因吗? 如果有人对我有解决方案或解决方案有任何见解,将不胜感激。 提前致谢。

PHP 7更倾向于SSL证书。

检查您要连接的服务器是否提供了正确的证书。 或者如果您可以让php忽略无效的证书。 (当然,不太喜欢正确设置它)

-

但是,这不能解释为什么您可以手动运行脚本。 我现在唯一想到的是:有证书。 以用户身份登录时在搜索路径中?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM