我对服务器和其他东西有点陌生,所以有个问题。我的开发团队正在开发我的网站。他们在不同的国家,目前他们把所有的工作都放在测试网站上。但测试网站对任何知道 URL 的人开放。它位于目录后面,但这会影响我的 QA 流程,因为我无法使用准确的 URL 结构来阻止公众看到它。所以我想这样做:
让我的网站在网络上上线,但只对我和我的团队开放,就像一个内部网络。此外,当我将它上线时,我需要将其镜像到我的实时网站上。所以我想这有点像设置一个临时和实时环境。
- 那么该怎么做呢?两个环境是否在同一台物理服务器上,或者我是否需要购买两台服务器?
- 如果我设置了一个暂存环境,我将如何访问它以及我的团队,因为我们都分散了,所以我认为我们需要登录某个东西才能访问它?
- 那么 URL 呢 - 我是否需要为测试站点使用不同的 URL,或者我是否可以为测试站点使用相同的实时 URL?
我计划为我的网站获取专用服务器 + CDN。平台是 PHP codeignitor 和 MySQL。
答案1
一般来说你的测试环境应该是完全独立来自您的生产环境 - 这使您可以在将软件更新投入生产之前对其进行测试,因此如果它们破坏了某些东西,您可以确定要修复什么以及如何修复它,而不会因为您的实时环境停机而产生时间压力。
我对理想情况的建议是构建一个与生产环境完全相同的开发环境 - 所有软件的版本相同、数据库内容相同等。这可以公开访问,也可以锁定在防火墙后面,所有开发人员和 QA 人员都可以通过 VPN 进行工作(采用哪种方式在很大程度上取决于您的工作流程和流程,但我个人喜欢 VPN 解决方案)。
使用 VMWare 之类的工具构建开发环境通常也很有利,因为您可以在进行重大更改之前对环境进行快照。
您还需要制定一个流程来推动您的变更投入生产。如果您有时间投资于以下解决方案木偶或者radmind现在它将使未来的部署变得更加容易(VMWare 在这里也很方便 - 您可以在虚拟机上测试您的部署过程并对其进行调试,以便当它在生产中运行时您知道它将如何运行)。
答案2
我的基本方法是拥有两个目录,相同的物理服务器。
我在 apache 中为 dev.sitename.com 和 www.sitename.com 设置了单独的 VirtualHost。当我对 dev 上的内容感到满意时,我将代码推送到 www。
平时我一般会用 dropbox 共享文件夹来做这件事,然后创建一个指向 /var/www 的符号链接。这样我就可以轻松修改文件并查看结果。
如果您与多个用户一起工作,最好为开发环境建立一个具有版本控制的存储库。设置一个 git 服务器并将存储库符号链接到 apache 的 http 目录。