PHP部署到windows / unix服务器

时间:2008-09-16 21:09:05

标签: php windows linux deployment automation

我们在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服务器。我们可以从任何地方开始部署,但我们希望能够从任何环境中进行部署。

5 个答案:

答案 0 :(得分:4)

我根据客户端环境使用4种不同的方法:

  1. Capistrano和类似工具(有效但复杂)
  2. rsync从+到Windows,Linux,Mac(简单,不强制执行纪律)
  3. svn从+到Windows,Linux,Mac(简单,不强制执行纪律)
  4. 服务器上脚本(通过浏览器运行,复杂)
  5. 有一些要求可以满足您的需求:

    • 您想要执行多少纪律
    • 如果您需要数据库(或配置)迁移(向上和/或向下)
    • 如果您想要一个静态的“我们已经关闭”页面
    • 谁可以进行更新
    • 服务器之间的配置差异

    我强烈建议强制执行足够的规则来拯救自己:部署到开发服务器,允许向上迁移和简单的数据库恢复,并限制谁可以将实时服务器更新为少量负责的管理员(dev服务器所在的位置)对更多的开发者开放)。还可以考虑通过cron作业(到开发服务器)进行推送,因此每天都有一个增量更改快照。

    大多数时候,我发现svnrsync设置就足够了,只需要一些服务器端脚本,特别是当管理员设置仅限于少数开发人员时。

答案 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个文件库中。