问题描述
我想使用 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 (将#修改为@)