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

===============>>#1 票数:4 已采纳

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

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

有一些要求可以满足您的需求:

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

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

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

===============>>#2 票数:1

这可能会听起来很愚蠢,但...我曾经有过这样的问题,所有的时间,直到我最终决定,如果我总是在Linux上部署 ,我真的应该至少尝试也可以在Linux 开发 我做到了。 它没有疼痛。 我再也没有回去过。

现在。 我并不是说这适合每个人。 但是,如果您安装VirtualBox ,则可以在Windows机器上将Linux安装作为本地服务器运行。 在虚拟机中共享一个文件夹,您可以使用所有已知和可信赖的Windows软件和技术, 并且知道一切都在其目标平台上运行良好。

此外,您还可以回到Capistrano(一个很好的选择)进行部署。

最重要的是,如果你认为你知道Linux / Unix等到你每天在桌面上使用它! 谁知道你甚至可能喜欢它:)

===============>>#3 票数:0

Capistrano是我见过的最好的部署工具。 架构更改是否无法修复配置,以便再次运行?

===============>>#4 票数:0

为什么你不能再使用capistrano了?

为什么你不喜欢svn-update?

您的应用中的哪些内容需要特殊部署?

===============>>#5 票数:0

您可以在配置文件上设置svn:ignore属性,以便svn update不会删除它们,然后使用svn export /target/path/来删除Subversion存储库中的.svn文件。

  ask by rcphq translate from so

未解决问题?本站智能推荐:

5回复

PHP项目部署新问题

我已经完成了一个php项目,并将其上传到server.I上devopveve在windowas上,现在我正尝试将其部署在远程linux服务器上。 但是我得到错误。 页面的某些部分未显示,我不知道为什么? 例如,我的页面如下。 我只能看到我看不到的其他部分的顶部。 我的文件描述如下
10回复

PHP文件包含不完全在LINUX机器上运行的脚本

我有很多功能和课程,我已经包含在我的网站上。 在stackoverflow的帮助下,我收到了一个自动包含文件夹及其子文件夹中所有文件的脚本: PHP:Automatic Include 在测试脚本时,它始终有效,我从来没有遇到任何问题。 但是最近从Windows服务器切换到Linux服
1回复

使用git钩子在多个服务器上自动部署php

最近,我们开始探索GIT的目标是让我们的开发人员能够在任何地方工作,其次是自动化整个部署过程。 我们有一个中央测试服务器,我们托管所有应用程序/站点以进行测试和/或演示目的,一旦开发和测试完成,我们将应用程序移动到各自的实时服务器。 无论我使用GIT设置了什么,如下所示 1.在测
1回复

自动化服务部署时,设置用户服务运行的最佳实践是什么?

我们正在尝试使我们创建的某些服务的部署自动化。 我们不想将用户名和密码硬编码到应用程序安装程序中。 不对用户名和登录名进行硬编码的问题在于,它使发行版的自动化成为问题。 您如何将Windows服务打包为msi,例如: 该服务被安装为以特定的用户名运行,具体取决于环境实例。
2回复

自动应用程序部署

我想在Windows 2012 R2基础架构上自动化应用程序/角色/功能部署(无人值守), 这个项目需要很多小时的编程,这就是我在这里问的原因。 我想部署以下应用程序和角色:Active Directory,DNS,Sql Server 2012,Citrix XenApp Server,
1回复

如何自动部署基于Java非Web的应用程序

我的应用程序 :基于Java的服务器和客户端应用 需要 :在Windows和unix environemnt中自动执行UAT和PROD中的部署过程。 现状 :支持团队遵循和部署的手动步骤。 在UNIX或WINDOWS上部署的主要步骤 :1)从hudson下载工件2)停
3回复

将PHP Web系统部署到多个位置

我正在开发(一个Web开发人员)一个基于Web的相当大的系统,该系统需要在各个不同的位置运行。 不幸的是,由于某些客户端具有拨号功能,因此我们不得不这样做,而没有为它们提供中央服务器。 每个客户端都是我们VPN的一部分,而拨号/ ISDN客户端则可以通过我们的Cisco路由器按需拨号。 几
1回复

Jenkins部署到Windows

我想自动将项目从Linux服务器上的Jenkins部署到Windows服务器。 如我所读,有一些工具可以从Linux到Windows进行scp。 有没有可以使用脚本从Linux推送构建的工具?
3回复

如何自动部署Web应用程序

我正在努力理解连续自动化一系列事情的最佳方法,以便部署网络应用程序并且还没有找到合适的解决方案。 我想要: 使用google的compiler.jar来缩小我的JS 使用yahoo的yui-compressor.jar来缩小我的CSS 访问文件并更改字符串,以便为“g
2回复

服务器命令行自动化(更新项目)

如何在远程服务器上自动运行某些命令? 例如,我使用Windows机器。 我运行蝙蝠文件。 它编译资源(js + CSS) 将代码提交到SVN 通过SSH连接到服务器 从该服务器上的SVN更新(使用Windows上存储的我的SVN密码) 运行一些s