开发环境 - 从开发到登台服务器到生产的VCS

时间:2009-12-14 15:02:15

标签: php svn version-control staging

我在同一类型的球场上读到了很多这样的主题,但是说实话,我仍然不能确定最好的方法(作为起点)。我是一个小型办公室的独立开发人员,我有大约30个网站,这些网站都是在Linux VPS上托管的。我想开始使用版本控制(可能是SVN)并设置登台服务器。目前,我在使用FTP上传到实时服务器之前在我的机器上进行本地开发,或者偶尔进行小的更改我直接编辑远程文件,这不是一种理想的方法。

我正在寻找有关如何改善我的开发环境的一些指导。我想我应该在Web服务器上安装SVN,这样我就可以查看本地机器的版本(我认为这也需要SVN)。另外,如果我想设置一个临时服务器,我应该只为每个实时网站设置子域名,然后使用这些子域名来显示客户端对网站的更改,然后再将它们生效吗?

希望这是有道理的!

3 个答案:

答案 0 :(得分:1)

这就是我们在工作中所做的事情:

我们有一个运行Apache和Subversion服务器的登台服务器。我们有一个post commit钩子来更新htdocs目录中的工作副本,这样,当开发人员提交一些它会在登台服务器上自动更新时,所以每个人都可以看到最新的代码。

在客户端的生产服务器(我们可以控制的服务器)上,我们安装了Subversion客户端,并且该网站是一个工作副本。当我们需要更新实时网站时,我们会登录shell并运行svn up。如果您执行此类操作,请确保使用.htaccess文件或主Apache配置限制对.svn目录的访问。

我们有一个管理项目的自定义应用程序,但这只是因为我们很懒,并且不想手动设置每个项目,应用程序会创建必要的目录和工作副本。您可以编写一个快速脚本来执行此操作。

我们永远不会永远,通过现场网站上的FTP编辑文件。总而言之,我们已经使用这个设置将近2年,除了临时服务器上的偶然冲突,我们从来没有遇到任何问题。

答案 1 :(得分:0)

您实际上可以在本地计算机上安装SVN服务器,我建议将其安装在Web服务器上(假设您进行备份)。最容易做的事情,因为只有你使用它,才会使用file://协议,但使用svnserve会更加健壮,如果你想花时间去做到这一点。

答案 2 :(得分:0)

@Michael,我不同意 - 我会说最好安装在linux vps上,特别是如果你已经为托管服务付费了。无论我在哪里,无论我在哪台计算机上,都能从我的svn repo中浏览和下载内容,这非常有帮助。

@nicky,几年前我开始使用svn(和版本控制),我采取了婴儿步骤,这使得它更容易解决。

如果我不得不再做一遍,我会先阅读svn book。这本书布置得非常好,并且通过犁过的时间不超过1-2天。

在您阅读时,请使用apache front end在您的Linux vps上安装svn。

完成后,选择一个网站并将其导入svn。这就是我构建svn repo的方式。例如,假设我的仓库托管在http://mysvn.mydomain.com/svn/

  mywebsite1
     - trunk
     - tags
     - branches 
  mywebsite2
     - trunk
     - tags
     - branches 

不要担心创造完美的结构。重新组织起来很容易,特别是在你刚开始的时候。在将几个项目导入svn之后,您将开始了解哪些项目应具有自己的“主干/标记/分支”目录结构,哪些项目可以组合。

为了创建测试环境,我完全按照您的描述进行操作。我使用构建脚本从svn签出并将文件下载到映射到子域的dirs,如“test.clientsite.com”(我主要在java中工作并使用ant和maven,但我认为你可以使用任何脚本语言你是熟悉)。

一旦你习惯了版本控制,你永远不会回去,祝你好运!