我们在windows(xampp)上开发了各种需要部署到linux / windows服务器混合的php项目。
我们过去曾使用capistrano从windows部署到linux服务器,但最近架构和Windows服务器的更改使旧配置无效。该配方适用于Linux部署,但设置Windows服务器需要比现在更多的时间。 Capistrano食谱的想法是有效的答案。显然,windows / linux服务器不共享用户,因此这有点让人感到困惑(因为capistrano假设有相同的用户名/密码)。
目前我们正在为Windows服务器使用svn-update,这是我不喜欢的,因为它会使所有svn文件都挂在生产服务器上。 (我们仍然需要在Windows上手动svn更新它们)并使用winscp手动更新文件并将目录与linux对应文件同步。
我的问题是,您建议使用哪些工具/设置来自动化此部署方案: “各种php windows / linux开发人员部署到2 +混合windows / linux机器”
(ps:使用linux工具或通过cygwin工作的任何东西都没问题,我们只需要让部署简单的一步操作)
编辑:目前我们无法在全Linux环境下工作,我们必须同时部署到linux和windows服务器。我们可以从任何地方开始部署,但我们希望能够从任何环境中进行部署。
答案 0 :(得分:4)
我根据客户端环境使用4种不同的方法:
rsync
从+到Windows,Linux,Mac(简单,不强制执行纪律)svn
从+到Windows,Linux,Mac(简单,不强制执行纪律)有一些要求可以满足您的需求:
我强烈建议强制执行足够的规则来拯救自己:部署到开发服务器,允许向上迁移和简单的数据库恢复,并限制谁可以将实时服务器更新为少量负责的管理员(dev服务器所在的位置)对更多的开发者开放)。还可以考虑通过cron作业(到开发服务器)进行推送,因此每天都有一个增量更改快照。
大多数时候,我发现svn
或rsync
设置就足够了,只需要一些服务器端脚本,特别是当管理员设置仅限于少数开发人员时。
答案 1 :(得分:1)
这可能听起来很傻但是...我曾经一直有这种问题,直到最后我决定如果我总是在Linux上部署,我应该真的至少在Linux上尝试开发。我做到了。它没有疼痛。我再也没有回去过。
现在。我并不是说这适合每个人。但是,如果您安装VirtualBox,则可以在Windows机器上将Linux安装作为本地服务器运行。在虚拟机中共享一个文件夹,您可以使用所有已知且受信任的Windows软件和技术和让您知道一切都在其目标平台上运行良好。
另外,你可以回到Capistrano(一个很好的选择)进行部署。
最重要的是,如果你认为你知道Linux / Unix等到你每天在桌面上使用它!谁知道你甚至可能喜欢它:)
答案 2 :(得分:0)
Capistrano是我见过的最好的部署工具。架构更改是否无法修复配置,以便再次运行?
答案 3 :(得分:0)
为什么你不能再使用capistrano?
为什么你不喜欢svn-update?
您的应用中的哪些内容需要特殊部署?
答案 4 :(得分:0)
您可以在配置文件上设置svn:ignore
属性,以便svn update
不会删除它们,然后使用svn export /target/path/
删除Subversion中的.svn
个文件库中。