【问题标题】:PHP method to transfer whole directory using FTP?使用 FTP 传输整个目录的 PHP 方法?
【发布时间】:2009-12-22 16:49:25
【问题描述】:

我一直在尝试想出一种方法来为我正在构建的 cms 构建一个自动更新系统,该系统可能会安装在许多服务器上(可能具有不同的配置)。我想出的是将当前版本上传到我的服务器的预定目录中。然后让分布式系统每隔一段时间检查一次该目录(在远程服务器上),以查看是否已上传新版本。如果上传版本的版本号大于特定系统的版本号,它会提示管理员更新。然后这些文件将通过 FTP 复制到 tmp 目录中,然后将从 tmp 复制以替换每个文件的旧版本。然后删除tmp目录,增加系统版本号。

问题在于,我还没有找到通过 PHP FTP 传输整个目录的方法。我知道我可以通过这种方式对其进行压缩和传输,但我还没有找到在各种服务器环境中解压缩文件的可靠方法。

我知道我可以编写自己的方法来遍历每个目录并一次传输一个文件,这很好。我只是想知道其他人是否已经为此写了一些东西,或者在我深入研究之前是否有人知道这个问题的替代解决方案。

感谢您的帮助!

【问题讨论】:

    标签: php ftp zip


    【解决方案1】:

    为什么不发送目录,而是压缩文件夹以节省带宽和时间?然后在目标服务器上解压缩。 删除,因为它不是 OP 的选项

    您可以使用 PHAR 档案来部署您的应用程序(如果您想成为最前沿的现代人)

    或者您可以为Phing 编写一个更新脚本,从您的服务器获取文件。你甚至可以从 SVN 进行检查,而不是将构建放在目录中。

    【讨论】:

    • 对,我不想担心这些服务器上安装了任何东西。我可能无法控制或真正了解该系统的安装位置。我会研究 PHAR,只是因为我以前从未听说过它,看起来很有趣。但这将取决于它在服务器上需要什么样的支持。
    【解决方案2】:

    尝试使用 exec() 从命令行运行 lftp:

    /usr/bin/lftp -e 'o ftp://ftp.example.com/path/to/remote/directory && mirror --verbose && quit'

    【讨论】:

      猜你喜欢
      • 2010-10-29
      • 2012-10-30
      • 1970-01-01
      • 2011-02-17
      • 2013-06-02
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多