我们希望向我们的开发管道添加临时服务器和版本控制。我们的站点是一个复杂的Web应用程序,运行在具有PHP,MySQL和Apache的远程Linux服务器上。我们只是在办公室局域网上设置了Subversion,并让它在Dreamweaver CS5中运行。我们的开发机器运行Windows。
问题是如何最好地将登台服务器添加到此设置中。我们是一个小团队,3个开发人员,因此我们不需要过于强大/复杂的解决方案。我不明白的是如何将我们的Subversion仓库(位于开发人员的某台机器上)的更改推送到登台服务器或实时服务器。
我读了很多关于为此编写钩子的人,但这是否意味着我们需要在登台服务器和实时服务器上安装Subversion?我宁愿不这样做。
我想将文件自动上传到Staging服务器,因为开发人员将文件提交给Subversion。怎么办呢?
然后我需要一个自动过程来将文件从登台服务器上传到Live服务器。这是我真正不理解的部分。特别是因为我不想在Live上安装Subversion。这通常是怎么做的?
是否将暂存服务器中的所有文件推送到实时?或者有没有办法只推动自上次推送以来发生变化的那些?
我希望使用Windows XAMPP来设置Staging服务器,但我们的Live服务器是Linux,我们的一些站点代码具有特定于Linux的文件路径,看起来它们在Windows中不起作用。这个问题通常是如何解决的?是创建新的Linux Staging服务器的唯一解决方案吗?如果可能的话,我宁愿避免这种情况。
在我们的网站上,用户可以上传图像,这些图像存储在站点根目录之外的单独文件夹中。 Windows XAMPP可以与设置一起使用吗?我们现在面临的最大挑战是确保相同的代码适用于Linux / Windows。有什么需要注意的事项?这在理论上是否可行?
谢谢!
答案 0 :(得分:0)
对于问题1和2,您在subversion存储库上使用post-commit挂钩(不需要在Web服务器上),这会将最新版本复制到您的登台服务器。
Re 3),这是一个坏主意,你不应该自动部署到生产。如果您这样做,错误提交可能会导致您的网站崩溃。
4,5和6是非常不同的问题,应该单独询问。
答案 1 :(得分:0)
不需要。挂钩可以在您的版本控制服务器上运行。钩子应该能够将构建推送到登台服务器。
Hooks可以提供这些功能,但为什么不将它与版本控制分开。
自动上传意味着无法控制何时推送构建。大部分时间在开发中,中间构建被打破。我建议你在工作流程中加入像BuildBot这样的“连续集成工具”。这将完成报告损坏的构建和构建运行状况的当前状态的工作。如果需要,您可以始终使用此机制自动将良好的构建上载到登台服务器。
分段用于在完整的实时环境中测试构建,这在QA环境中难以复制。因此,如果发现存在错误,则可能无法将基于分段的构建推送到实时环境。
XAMPP可以在Windows上运行。在谷歌上查看。虽然,您的暂存和实时环境应该完全相同,因为这就是暂存环境的用途。
从理论上讲,它应该有效。您必须测试您的特定功能。