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