Php 如何从SFTP服务器获取文件

Php 如何从SFTP服务器获取文件,php,Php,在过去的两天里,我一直在做这件事,但毫无结果。我也在StackOverflow上搜索了一个解决方案,但找不到一个适合我的 我正在尝试从SFTP服务器中提取.csv文件。我发现默认安装的PHP无法做到这一点。我找到了两个解决方案 1) 在我的PHP中启用ssh2_sftp扩展。我没法让它工作。我下载了所需的文件,按照指示将它们放在我的php/ext文件夹中,并根据需要修改php.ini中的行。不起作用 2) 使用phpseclib。无法使其工作,因为您需要使用composer,并且composer

在过去的两天里,我一直在做这件事,但毫无结果。我也在StackOverflow上搜索了一个解决方案,但找不到一个适合我的

我正在尝试从SFTP服务器中提取.csv文件。我发现默认安装的PHP无法做到这一点。我找到了两个解决方案

1) 在我的PHP中启用ssh2_sftp扩展。我没法让它工作。我下载了所需的文件,按照指示将它们放在我的php/ext文件夹中,并根据需要修改php.ini中的行。不起作用

2) 使用phpseclib。无法使其工作,因为您需要使用composer,并且composer不会加载我的php.ini,因为我启用了curl

是否有其他登录到sftp服务器的解决方案


感谢您的帮助。

既然您在正在使用的机器上似乎有
root
访问权限,为什么不使用
scp
?只要您启用了
shell_exec
,并且用户
www-data
(或者您称之为
httpd
用户的任何内容)具有
shell
访问权限,它就是一个本机php函数

<?php
    $connection = ssh2_connect('your_remote_server', 22); //remote connection
    ssh2_auth_password($connection, 'username', 'password'); //authentication
    ssh2_scp_recv($connection, '/remoteServer/whatever/yourFile.csv', '/localServer/yourNewFilename.csv'); //remote file -> local file
?>

注意
我使用过这个,但我也使用
bcrypt
将“用户名”和“密码”存储在
MySQL
数据库中,最低成本为12。关于这方面的更多信息

既然听起来您在正在使用的机器上有
root
访问权限,为什么不使用
scp
?只要您启用了
shell_exec
,并且用户
www-data
(或者您称之为
httpd
用户的任何内容)具有
shell
访问权限,它就是一个本机php函数

<?php
    $connection = ssh2_connect('your_remote_server', 22); //remote connection
    ssh2_auth_password($connection, 'username', 'password'); //authentication
    ssh2_scp_recv($connection, '/remoteServer/whatever/yourFile.csv', '/localServer/yourNewFilename.csv'); //remote file -> local file
?>

注意
我使用过这个,但我也使用
bcrypt
将“用户名”和“密码”存储在
MySQL
数据库中,最低成本为12。更多关于使用我在原始帖子中提到的ssh2_sftp扩展的

。我似乎无法让它工作。也许我没有安装好?提出这些东西的人并没有很好地记录它们或者提供清晰的说明。你是在Debian发行版上吗?您是否尝试过简单地
sudo apt get install libssh2-1 php-ssh2-y
,然后
sudo service apache2 restart
?我目前在我的桌面上使用的是Windows上使用的XAMPP。在这种情况下,这就不那么简单了。。您必须确保安装了
PHP
版本的
ssh2
,并且必须确保安装的操作系统正确(64位vs 32位)。此外,我认为(不要引用我的话)适用于Windows的
ssh2
只适用于
PHP5.5
。它使用了我在原始帖子中提到的ssh2\u sftp扩展。我似乎无法让它工作。也许我没有安装好?提出这些东西的人并没有很好地记录它们或者提供清晰的说明。你是在Debian发行版上吗?您是否尝试过简单地
sudo apt get install libssh2-1 php-ssh2-y
,然后
sudo service apache2 restart
?我目前在我的桌面上使用的是Windows上使用的XAMPP。在这种情况下,这就不那么简单了。。您必须确保安装了
PHP
版本的
ssh2
,并且必须确保安装的操作系统正确(64位vs 32位)。此外,我认为(不要引用我的话)对于Windows,
ssh2
只适用于
PHP5.5