我在我的网站上使用 phpseclib 2.0,使用 composer 安装。我编写了一个 php 函数,它基本上通过 SFTP 连接到远程服务器,并在预定义的目录中下载文件。这个函数是通过 CRON 使用 cURL 调用的,并且运行良好。上周,它停止工作。我启用了日志记录,这就是我得到的。
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 版。这可能是原因吗?如果有人对我如何解决这个问题有解决方案或任何见解,将不胜感激。提前致谢。