在共享和专用服务器的虚拟机上使用Sphinx进行Web开发

时间:2011-06-21 04:22:44

标签: sphinx virtual-machine dedicated-hosting

背景

我正在开发一个带有标准LAMP堆栈的Web应用程序。我是网络开发的新手,最初计划简单地将我的代码(一旦完成)FTP到我的托管服务提供商(目前是BlueHost,但将来可能会改变)。

狮身人面像搜索

最近,我决定在Sphinx搜索支持的网站上添加高级搜索功能。显然这意味着我必须将Sphinx安装到我的开发机器上。当网站上线时,我将不得不在我的生产服务器上安装(通过ssh)Sphinx。这可能需要花费大量时间来调试Sphinx(以及其他环境)的开发和生产安装中的细微差别。

我还在学习

我偶然发现虚拟机它看起来像(如果我错了,请纠正我)一些开发人员为每个项目创建VM并将VM加载到他们的生产服务器上。这样,一旦将代码上传到生产服务器,就不必调试代码,从而增加了成功的可能性。

问题

我的问题是:在应用程序开发完成后,在虚拟机上进行开发并尝试将其加载到我的生产服务器上是否有意义?如果是这样,这通常可以用于共享服务器还是仅用于专用服务器?如果没有,您是否介意解释您对解决开发和生产服务器之间存在差异的潜在问题的最佳方法的看法。

2 个答案:

答案 0 :(得分:0)

大多数共享服务器的权限非常有限。有些人可能甚至不允许您运行sphinx,更不用说服务器中的VM实例了。

通常的过程是你有3个服务器/环境(理想情况下4个会很好)。

  1. 开发服务器 - 这是您的本地工作机器和您在此计算机上。这可能与生产服务器完全不同。

  2. 登台服务器 - 理想情况下,此服务器应与您的实时服务器完全相同。此服务器通常包含应用程序的不稳定版本,其中包含所有最新提交。使您的登台服务器与生产服务器尽可能接近(系统方面)将帮助您识别和解决环境问题,避免在生产服务器上出现问题。

  3. 生产服务器 - 这是您的实时服务器。在临时服务器上安装稳定版本后,只需将代码库部署到实时服务器即可。这是让您的生产和登台服务器彼此相同的帮助,因为您不必担心环境差异搞乱。

  4. 此外,您可以使用生产服务器的镜像来调试任何特定于环境/数据的问题。

    如果您在共享服务器上运行,最好是在Web应用程序中设置两个域。在服务器上使用http://beta.webapp.com之类的内容并将其用作登台服务器。

    我无法评论虚拟机,我没有按照你描述的方式在生产系统中使用它们,但这与我想的相同。

答案 1 :(得分:0)

JohnP涵盖了很多方面。我想补充一点,你可以看看VirtualBox。它是免费的,并且在我的经验中运作良好。它应该允许您运行配置的VM(例如,与您的部署主机完全相同)。