你们有什么建议作为设置测试服务器(xp pro上的xampp),登台服务器和生产服务器的良好参考,同时还有svn?我是“铁杆”开发的小伙子,但是想要从右脚开始,像专业人士一样设置我的环境。我有几个项目即将推出,并希望向前迈出两步,而不是前进一步,后退两步。
我最不了解的主要领域是......在所有服务器和数据库之间保持文件路径正确(处理localhost / site.com / file.html与www.site.com/file.com),将更新推送到下一个服务器 - 测试分段到生产,以及使用svn(我们将有几个人同时在同一个项目上工作)。
每个项目都有一台服务器,因此不需要有关负载平衡和设置多个服务器的信息。除非另有说明,否则我们还计划对svn使用netbeans或eclipse。
生产和登台服务器将是LAMP,而测试将是xp pro上的xampp。感谢您的帮助!
答案 0 :(得分:1)
问题的3个部分:
1)服务器之间的配置文件差异 - 我们在项目中有环境文件夹,我们存储配置文件以保持多个版本。
所以喜欢:
Solution folder
|--> Environment
|--> Development
|--> Staging
|--> Production
|--> Src
|--> Project folders
然后构建我们的构建脚本以接受环境参数并拉出正确的环境文件夹,在部署它们时覆盖原始文件。
2)将代码更改推送到环境服务器 - 在SVN中,我们为每个项目的每个环境设置分支。 所以喜欢:
SVN Root
|--> Project
|--> Branches
|--> RB-Development
|--> RB-Staging
|--> Trunk
Trunk是我们的生产代码。
我们还为我们正在处理的每个功能集创建一个新分支。然后在准备部署时,我们将其合并到正确的环境分支;构建工具正在监视这些环境分支,并在提交代码时自动部署到正确的分支。
3)多人使用SVN - 为您将要处理的每个垂直功能集创建项目的分支。因此,对于购物车类型的应用程序,您将拥有关于客户,产品,订购等的功能......这将减少同时在同一分支上工作的人数。然后根据需要在这些分支之间以及相互之间或环境分支中合并代码。听起来比实际情况复杂。
答案 1 :(得分:1)
回应Chad要求提供更多环境文件夹的示例&配置文件,这里是进一步的信息:
我们将项目使用的任何设置拆分为配置文件;我们正在构建网站,因此这些配置文件是从web.config引用的。
例如在我们的Configuration文件夹中,我们有一个ConnectionStrings.config,里面有这个(填写你的信息而不是[] s当然):
<connectionStrings>
<add name="APP"
connectionString="Data Source=[];Initial Catalog=[];uid=[];password=[]"
providerName="System.Data.SqlClient" />
</connectionStrings>
它的路径是:
Site root
|--> Configuration
因此在Web配置中引用它:
<connectionStrings configSource="Configuration\ConnectionStrings.config" />
因此,在我们的解决方案文件夹中,我们将拥有以下结构:
Solution folder
|--> Environments
|--> Development
|-->Configuration
|--> ConnectionStrings.config
|--> Production
|-->Configuration
|--> ConnectionStrings.config
|--> Staging
|-->Configuration
|--> ConnectionStrings.config
|--> Src
|--> Project folder (site root)
|--> Configuration
|--> ConnectionStrings.config
与任何其他设置相同,通常放入我们的AppSettings.config。所以像文件的路径或任何其他可能改变的设置。
<appSettings>
<add key="FilePath" value="C:\FileStorage"/>
</appSettings>
答案 2 :(得分:-1)
好。让您的应用程序商店开发和生产配置。数据库访问和路径之类的东西。没有理由为不同的服务器保留相同的路径(特别是如果你混合使用unix和windows)