基本上我想知道什么最常见的服务器设置是一家networking公司。 在公司我现在工作了,我们有我们所有的客户网站上的1台服务器。 我们有时在本地工作并上传,但10个中的9个最终在活动服务器上进行开发。 现在这不是理想的,会引起各种各样的问题,更不用说使问题发现变得困难(由于日志被debugging错误堵塞等)。
我已经听说有很多人有生产服务器,登台服务器和开发服务器,我认为这将是路要走。
我在想的设置是:
生产服务器 – 只有活网站继续这一点。 除服务器pipe理员外,没有人可以访问FTP。 phpSuExec是安装,所以每个网站作为自己的用户运行。 服务器是高度优化的。 所有不被使用的端口残疾等
登台服务器 – 生产服务器的克隆,不含phpSuExec,但仍然限制访问。
开发服务器 – 所有员工使用的内部服务器。 没有FTP限制,可以安装像SASS,xdebug这样的生产力辅助软件,限制性较小的安全规则等。
工作stream程将是:每个人都在开发服务器上工作。 当需要客户端查看站点或在生产环境中进行testing时,它将被移动到登台服务器。 如果有问题,请回到开发服务器,修复问题并推回到登台服务器。 然后,一旦所有的问题得到解决,客户很高兴,我们将网站移到生产服务器。
我会对上述系统的任何build议/陷阱感兴趣,以及其他公司如何做到这一点。
所有服务器都是LAMP,运行Ubuntu
三层设置非常普遍,原因很明显。
不过,我build议对已经列出的内容进行一些更改:
您的登台服务器应该是生产环境的精确副本。
这有一个巨大的优势,即分段生产部署尽可能的顺利和无差错,而且由于这种部署可能涉及到停机时间,所以您需要这样做 。
也就是说,对临时环境的实际访问可以不像生产时那样受到限制,简而言之,DEV和QA / UA也可以访问以进行故障排除。
您可能希望将其限制为只读访问以检查configuration和读取日志文件,但从长远来看可能会节省时间; 这通常取决于您对这些环境的使用模式。
如果商店足够大,你有独立的DEV和QA部门,那么一定要保持临时环境与DEV完全分离; 大型商店通常有一个完全独立的发布团队 ,负责正是这个部署阶段。
我同意@adaptr,并补充说,开发人员应该使用自己的环境进行开发,并检查更改到源代码控制。 这可以防止他们彼此间的变化,并防止一个开发人员破坏服务器,使每个人都失去工作一天。 “发展服务器”应该从这些签入自动发布,并作为所有变化的集成环境。