2011-05-31 39 views
0

我有一个像dev.example.com这样的LAMP开发服务器。最终这将被复制到www.example.com之类的我们将拥有root权限的地方。如何在生产服务器上正确解析的开发服务器上引用子域?

我想让系统管理员设置一些子域名(例如,subdomain1.example.com),这样他们就可以在开发服务器和生产服务器上工作,而不必引用这些子域名重写。

可以在开发和生产服务器上配置Apache,以便我的代码可以引用类似subdomain1.localhost的东西?有没有其他的方式来做到这一点?

(这些服务器将运行的CentOS和AMP栈的最新版本。)

+0

如果我理解你正确,你很乐意返回一个不同的答案(subdomain1.LOCALHOST vs subdomain1.example..com),那就是你很乐意改变/参数化你的代码。 – mcr 2011-05-31 18:30:35

+0

感谢您的回复。通过参数化代码,我假设你的意思是根据它所在的服务器动态生成子域引用。那是对的吗?如果是这样,我想这可能会奏效。但是,上下文是,内容管理员(非开发人员)需要将一些子域引用输入到CMS(Drupal)中。最好不要教他们输入PHP。 – 2011-05-31 18:41:22

+0

您不能将相对URL添加到不同的子域。有些东西需要翻译它们或在输出之间切换。也许在开发网站上的一个自定义输入过滤器,将“实时”URL转换为开发人员的URL? – Deanna 2012-10-11 15:40:07

回答

1

我终于在CDN模块中找到了答案。顾名思义,这是为了与内容交付网络一起使用,但基本上它只是基于规则重写Drupal输出的URL。我使用它来重新编写URL,以便可以使用唯一的主机名来提供不同的文件类型(再次,以最大限度地实现并行下载)。

0

再次阅读你的问题,我想你想你的代码总是返回subdomain1.localhost,和你想的Apache以某种方式改变这种到生产服务器上的subdomain1.example.com。

您可以使用ProxyPassReverse来完成此操作,但如果子域1位于同一台计算机上,则可能必须运行Apache的两个副本。 (我不知道Apache是​​否会在这里与自己交谈)。这是一个昂贵的解决方案。

相反,我建议您参数化您的代码。 在rails堆栈上,使用capistrano建议的production.rb cp完成此操作的最简单方法,并且您可能需要调查类似的部署PHP代码的方法。

相关问题