我正在研究灯的应用 我们有2台服务器(Debian)Live和Dev。
我不断致力于开发主要添加新function和修复错误。
当快乐的一切运作良好时,我将相关的代码提交给Live系统。 数据库(mysql)是每台机器本地的。
现在这是非常基本的设置,我想改进一下工作stream程。 我使用git和github进行版本控制。 无可否认,我只使用了一个分支。 他们可以是3个不同的开发人员,他们在不同的时间处理代码。 我们都使用相同的linux用户名连接到dev服务器,并在需要时直接编辑代码。 然后,我通常会在一天结束时将代码提交给github。
要记住的一件事是在本地机器上运行这个代码并不容易,因为有许多apache和子域configuration不能在本地机器上工作,所以在本地机器上工作在dev服务器上是非常重要的。
我需要创build一个新的进程,因为我们现在需要一个主干和一个重写大代码的分支。
做这个的最好方式是什么。 是否应该为每个开发人员创build不同的unixlogin名,并在dev服务器上设置不同的工作区域以进行更改? 例如
/ var / www / mysite_derek / var / www / mysite_paul / var / www / mysite_mike
我的想法是,他们可以从主分支拉,然后创build自己的分支,并将其合并回来。我不知道这将如何工作,虽然在本地git和git。
我需要创build不同的github用户帐户。
我想这样做是为了有很多潜在开发者的“正确”方式和未来的certificate,但我也不想过于复杂。 我简单而优雅的解决scheme是首选。
任何build议或build议?
我们与大约12位开发人员一起使用的解决scheme如下。 它工作得非常好,使得灵活的设置,而不需要修改服务器的configuration了。 由于networking延迟和服务器存储的速度,它可能不会扩展到40-50开发者。
我们通过Samba共享/ var / www /树,所以Windows客户端可以使用他们的本地IDE和VCS客户端在LAMP服务器上进行编辑。 没有人在Linux服务器上有一个帐户。
像这样创build你的目录结构:
/var/www/mysite.com/www/derek/ /var/www/mysite.com/www/paul/ /var/www/mysite.com/www/mike/
在您的内部DNS中,创build一个通配符logging,将**。dev *指向您的灯服务器的IP地址。 我在这里假设123.45.67.89 。
在Apache中,定义一个类似于以下的虚拟主机:
<VirtualHost 123.45.67.89> ServerName lamp.dev ServerAlias *.dev VirtualDocumentRoot /var/www/%-3.0.%-2/%-4/%1/ </VirtualHost>
重要的部分是ServerAlias通配符,它使得这个虚拟主机响应以'.dev'结尾的所有传入请求。 另一个重要的是VirtualDocumentRoot,它看起来很复杂,但并不那么糟糕。 它只是简单地将传入的主机名剪切成部分,并将DocumentRoot构造出部分。 你可以在这里阅读更多 。
现在,任何开发人员都可以访问http://derek.www.mysite.com.dev/并查看他们个人的mysite工作副本。
添加新网站,子域或开发人员只是在Samba共享上创build正确的目录。
对于部署到生产服务器,我会build议你沟渠scp,看看Capistrano ,以及优秀的中央Web前端Webistrano 。 Capistrano有点以Rails为中心,但只需要几行就可以适应PHP。 Webistrano提供了一个中央GUI,您可以通过button直接从版本控制部署或更新站点。 通过简单的脚本部署,可以可靠地重复执行,并在出现问题时回滚,不应忽视。