繁体   English   中英

PHP部署到windows / unix服务器

[英]PHP Deployment to windows/unix servers

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

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

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

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

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

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

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

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

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

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

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

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

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

为什么你不喜欢svn-update?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM