2009-12-22 35 views
0

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

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

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

感谢您的帮助!

回答

0

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

你可以使用PHAR档案为您的应用程序的部署(如果你想成为出血边缘现代)

或者你可以写一个更新脚本Phing从您的服务器获取文件。你甚至可以从SVN检出结果,而不是将该版本放入目录。

+0

吧,我不想担心被安装在这些服务器上的任何东西。我可能不会有任何控制权或真正了解系统安装位置。我会研究PHAR,因为我从来没有听说过它,看起来很有趣。但这取决于它在服务器上需要什么样的支持。 – seventeen 2009-12-22 17:15:44

0

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

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