我在一家小型 PHP 商店工作,最近我提议我们不再使用我们的 nas 作为共享代码库,而是开始使用 subversion 进行源代码控制。
我已经想出如何确保我们的开发服务器在每次提交到我们的开发分支时得到更新......我知道如何合并到主干并更新我们的暂存服务器,因为我们可以直接访问两者其中,但我最大的问题是如何编写一个脚本来更新生产服务器,我们很多时候只能通过 ftp 访问它。我不想每次都上传整个站点...有什么方法可以编写一个足够智能的脚本,以便在我们执行它时只上传已更改到 Web 服务器的内容(不希望它自动被上传到生产环境,我们要手动执行)?
我的问题有道理吗?
最佳答案
基本上,您的问题是您不能在生产服务器上使用颠覆。您需要做的是在一个单独的(理想情况下配置相同的)服务器上保留您的生产结帐副本,并通过任何方法将其复制到生产服务器。实际上,您可以将其视为您的暂存服务器,因为它对于在发布之前对发布进行最终测试也很有用。
就副本而言,如果您的提供商支持 rsync
,你设置了。如果您只有 FTP,则必须找到一些方法来通过 FTP 执行与 rsync 等效的操作。这不是第一次有人有这种需要;网络搜索将帮助您。但是,如果您找不到任何东西,请给我留言,我会再四处看看。
编辑:希望作者不介意我添加这个,但我认为它属于这里。要执行与 ftp 的 rsync 大致相似的操作,请查看 weex http://weex.sourceforge.net/ .它是一个围绕命令行 ftp 的包装器,它使用本地镜像来跟踪远程服务器上的内容,以便它可以只发送更改的文件。非常适合我。
关于PHP 颠覆设置 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900594/