如何解决phpseclib3 SFTP 脚本在本地工作但在 cPanel 上不工作
我想使用 PHP 7.2 和 PHPseclib3 从 SFTP 服务器下载文件。问题是我写了一个在本地运行良好的脚本并下载了文件,但是当我在 cPanel 上上传代码时它不起作用。
我的脚本 (main.PHP)
<?PHP
require 'vendor/autoload.PHP';
use PHPseclib3\Net\SFTP;
$sftp = new SFTP('170.135.187.17');
if (!$sftp->login('username','password')) {
exit('Login Failed');
}
$sftp->get('/Download/Inherent.40IW.IW_DailyNAV.csv','Inherent.40IW.IW_DailyNAV.csv');
?>
我正在使用作曲家。为了在 cPanel 服务器上运行它,我将所有文件复制到 public_html
文件夹。然后我从 cPanel 打开终端并导航到 public_html
并运行 composer install
,然后运行 PHP main.PHP
以在服务器上测试脚本。
我的尝试
我搜了一下,发现共享主机需要绑定socket。
所以我把代码改成这样:
<?PHP
require 'vendor/autoload.PHP';
use PHPseclib3\Net\SFTP;
$opts = array(
'socket' => array(
'bindto' => '127.255.255.255:0',),);
$context = stream_context_create($opts);
$socket = stream_socket_client('170.135.187.17:22',$errno,$errstr,ini_get('default_socket_timeout'),STREAM_CLIENT_CONNECT,$context);
$sftp = new SFTP($socket);
if (!$sftp->login('username','Inherent.40IW.IW_DailyNAV.csv');
?>
上面的代码可以在本地运行,但是当我将其上传到 cPanel 时仍然无法运行。
我也尝试使用 $sftp->getSFTPErrors()
记录错误,但它输出空数组。
不是:如果有人有另一种从 sftp 下载文件的方法,请提出建议。请记住,我在 cPanel 中没有 sudo 访问权限。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。