2011-03-09 33 views
4

我们一直在解决这个问题已经有一段时间了,似乎无法找到一个完美的解决方案来满足让开发人员更轻松的所有要求。在团队中组织PHP开发(环境,配置等)

现在,我们有以下设置:

  • Linux开发服务器(如一切我们生产运行在Linux上,并使用一些Linux-specifix库)
  • Windows桌面(如办公网络在窗口上)
  • 每个开发者都在开发者服务器上有一个主文件夹,虚拟主机被设置为运行他们的代码。这个文件夹是使用Samba共享的。
  • 被设置为使用该位置(如网络驱动器)对项目的工作
  • 远程调试
  • 的Zend Studio IDE能够运行开发服务器上的应用程序,并能够单步执行代码

所以我们有存在的主要问题是,一切都是慢......

  • Zend公司是慢指数的项目,因为它有相当多的文件(包括像全框架的外部)需要通过SMB进行传输。
  • 远程调试速度慢,因为Zend studio需要获取文件,然后将其发送回服务器以运行它(运行“本地如果可用,否则服务器”;否则断点不起作用)
  • 龟SVN慢获得​​的提交的文件状态(命令行补救措施的问题,但它更人性化,尤其是像解决冲突的更复杂的东西,而合并)

分支出来任何将有解决方案多个服务器配置带来了一个问题,那就是每个地方都有不同的配置机会,这会带来额外的不确定性和生产中的错误。

由于代码中的Linux依赖关系(如POSIX函数),在windows下开发和调试是不可能的。

那么组织如何解决这些问题呢?你正在使用什么样的设置?你面临什么样的问题,以及如何解决它们?

回答

3

一个解决方案,在某些情况下的工作原理是:

  • 让你的本地磁盘上的代码,运行Windows
    • 此代码是一个你与你的IDE修改物理计算机上
    • 因此,IDE工作速度越快越好:每个文件都不需要SMB访问权限。
  • 也有Linux服务器上的代码
    • 所以Apache运行速度快:代码显示在服务器
  • 上使用某种同步mecanism的,推在作出一切修改通过SMB共享将Windows机器上的文件传输到Linux服务器。
    • 使用Eclipse,FileSync plugin在SMB分享方面做得很好。
    • 的WinSCP也可以用,以保持一个远程和本地文件夹同步,通过SSH联接


优点:

  • 所有本地操作速度快
  • 所有服务器操作很快

缺点:

  • 必须始终使用,以确保同步工具(例如,对于FileSync,一切都必须在Eclipse中完成 - 并且没有在其他任何软件)
    • 注:SVN ,没有必要使用龟:还有一些集成到Eclipse插件(颠覆,例如)
  • 不知道有关调试
  • 直接在Linux机器上完成的修改可能不是(取决于解决方案)会同步到Windows桌面。


不过,最好(最快,最强大)解决方案通常是使用一台计算机 - 这将运行Linux,你的情况,而不是Windows。

  • 你的工具将在Linux下最有可能的工作
  • 如果需要的话,你可以在虚拟机中安装Windows,对于不运行在Linux上
  • 它会鼓励大家在你们团队的一些软件更好地了解Linux;当你的生产环境不是Windows时,它总是很有用;-)
+0

可以在服务器上使用Zend进行调试(远程调试)。 另一种方法是使本地服务器提供本地计算机上的文件。我有这种方法(我的项目文件在我的Win 7开发机器上,我的本地服务器Web根目录是该文件夹 - 工作正常,如果速度较慢,它只是“模仿”网络环境:)。 根据一个团队一起工作,使用Git或Mercurial,它将允许开发本地副本的存储库,同时保持一切“同步”,当开发人员推动它的变化。 – ronaldosantana 2011-03-09 19:24:19

+0

+1:作为一名PHP开发人员,从Windows转移到Linux是我所做过的最好的举动。如果OP使用Windows的唯一原因是要与办公室的网络相匹配,那么将整个开发团队带到Linux上可能不是一个坏主意。它只是更直观地工作。 – DeaconDesperado 2011-03-09 20:42:00