3

我有一个带有登录详细信息和来自 PHP 的安全 FTP 服务器,我正在尝试使用ftp_ssl_connect/ftp_connectftp_login函数连接到该安全 FTP 服务器,并将所有参数正确传递给函数,但我很惊讶它没有连接。

如果我尝试使用 ssh 从命令行连接到该安全 FTP 服务器,我可以这样做,但是当我尝试通过 php 代码连接时,它无法连接,所以我不确定为什么会这样?

还有其他使用 PHP 连接到 Secure FTP Server 的方法是什么?

编辑:我尝试使用ssh2_sftp但仍然无法连接到安全的 FTP 服务器。

编辑 2:是否有任何其他方法可以使用 PHP 进行 SFTP,请告知。

更新:添加了使用 ssh2_sftp 连接到安全 FTP 服务器的代码,但它没有工作并且程序因消息而终止Cannot connect to Server

<?php
$connection = ssh2_connect('www.server.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection) or die ("Cannot connect to server");

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>
4

3 回答 3

1

我在phpseclib 方面取得了相当大的成功,这是一个纯 PHP SFTP 实现。别介意 PECL 扩展很难安装,但它也不可靠且不便于携带。

于 2011-02-04T05:37:12.167 回答
1

FTP/S(基于 SSL 的 FTP)是与 SFTP(基于 SSH 的 FTP)完全不同的协议,您不能使用 SSL 库连接到 SFTP 服务器(反之亦然)。

我不是 PHP 程序员,但似乎连接到 SSH 服务器的一些选项本身可用于您的平台

于 2010-01-31T05:55:25.757 回答
1

就像 mdb 说的,你需要在 PHP 中使用 ssh2 扩展。如果您使用的是 Linux,则非常简单,只需 sudo pecl install ssh2。如果您使用的是 OS X,则需要进行 svn 结帐,或按照此处的说明进行操作:http: //thirdpartycode.com/2010/01/installing-the-php-ssh2-extension-in-snow-leopard- 10-6/

于 2010-01-31T05:58:36.743 回答