2011-05-31 37 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代碼的方法。

相關問題