【问题标题】:Access files using PHP and secured FTP使用 PHP 和安全的 FTP 访问文件
【发布时间】:2013-06-18 11:45:24
【问题描述】:

我需要任何教如何使用 ftp 在 php 中访问远程服务器的网站或书籍。

我的问题的详细信息: 基本上有两台服务器。所有用户上传的文件都在服务器 2 中,但现在我需要访问我的服务器 1 上的文件。

假设我的 ftp 详细信息是这样的:

ftp://userfiles.example.com
username: admin
password: 1234

那么我可以使用哪个 php 函数来创建与该服务器的连接。我总是访问像“../example/dir/example.txt”这样的文件,如果没有密码,那么也许我可以这样做 “ftp://example.com/dir/example.txt”。

【问题讨论】:

  • FTP 是一种传输文件的协议。我想你可以,但我绝对不建议使用 PHP 登录到远程 FTP 服务器来访问用户上传的文件。这肯定会减慢您的网站速度。运行 FTP 访问远程数据的开销会很高。其次,为什么不将server2的数据复制到server1,让用户上传的文件,从现在开始,上传到server1呢?这绝对是一个更明智的解决方案。
  • 我希望我可以。我正在工作的公司实际上已经雇用我来做这项工作。他们的第一个警告是我们需要一个可以让我们解决这个问题的开发人员,而无需将文件复制到 server1 中。许多公司在世界各地都有不同的服务器,他们不使用 ftp。如果有比 ftp 更好的方法,请指导我。 :)
  • 目前我能想到的只有这些:(1)如果你使用FTP,让连接持久化。这样,握手仅在服务器启动时完成。 (2) 在server2上设置NFS; (3) 使两台服务器都成为 Web 服务器,并从那里为用户上传的文件提供服务。
  • 另外,“许多公司在世界各地都有不同的服务器”——没错,但这些服务器中的大多数都没有使用 FTP 相互登录以发送/接收文件。他们使用 chef 和 puppet 等工具来帮助管理它们。
  • 如果您实施 FTP 解决方案,您可能希望使用 PHP FTP 扩展 (php.net/manual/en/book.ftp.php) 以外的其他东西。 PHP FTP 扩展不支持持久连接 (bugs.php.net/bug.php?id=9969)。所以...你可以寻找一个已经这样做的库,或者你可以用另一种语言实现一个持久的 FTP 连接,然后从 PHP 调用它。不理想,但imo,总比没有持久连接好。这完全取决于用户上传文件的访问频率。

标签: php ftp


【解决方案1】:

FTP 和 SFTP(您使用 SFTP 标记了您的帖子并在您的问题标题中提到了它)是不同的东西。对于 FTP,我建议使用 PHP's built-in FTP functions。对于 SFTP.. 提供了一个 PHP 扩展 (ssh2),但我个人认为 phpseclib, a pure PHP SFTP implementation 更易于使用。

如果您使用 FTPS(基于 SSL 的 FTP),请使用 FTP 扩展。

【讨论】:

  • 我将使用 ftp 或 sftp 两种方法,然后再决定使用哪一种。我知道 sftp 和 ftp 是两种不同的协议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 2016-03-31
相关资源
最近更新 更多