2009-08-25 33 views
6

一般來說,我的發展只覆蓋了中小型公司和電子商務網站。如何處理訪問一個「大腦」的多個站點?

我的下一個項目將包括說30點 - 然而,他們將有共同的約95%彼此。我希望他們有一個'大腦',這意味着我可以推出更改,更新框架等只有一次。

我不知道堆棧溢出家族的網站是否這樣做(超級用戶,stackoverflow,serverfault等)。

我的語言/選擇的平臺是PHP 5.3中,MySQL 5和Kohana的框架。

大腦應該有

  • 1管理系統,該系統能夠處理的每一個網站
  • 所有模板在大腦中存在 - 但他們有佔位符,例如標題,標識等
  • 的一種方式所以我可以推出任何更新到全局模板將自動過濾到所有其他網站。

我意識到這會給大腦帶來很多壓力,所以我不得不使用服務器端緩存。

我怎麼會對每個域接入大腦,因此,例如:

http://www.mysite2.com/products/something

默默訪問http://www.mothership.com/mysite2/products/something

而且會是這樣做的最好方法是什麼?你有什麼建議嗎?我在正確的軌道上嗎?

隨時問我任何更多的細節。

+0

是否所有的共享服務器上的站點,即具有相同的IP地址? – 2009-08-25 04:53:24

+0

他們可能是 - 但我這樣做的經驗有限。 – alex 2009-08-25 04:55:01

+1

mothership.com好! – 2009-08-25 05:05:59

回答

3

最簡單的方法是使用虛擬主機。基本上你在一臺機器上運行所有的站點。一臺機器有一個爲所有站點提供服務的Apache配置。

如果網站是不同於更類似於然後就點所有的網站到一個目錄。 PHP文件可以檢測到他們正在服務的網站。您可以爲每個網站提供不同的頁眉和頁腳以處理外觀和感覺。您也可以通過這種方式限制某些頁面。

如果這些網站與類似網站有更多不同,請將它們分別指向不同的目錄,並在每個目錄中包含與這些網站相關的網頁。

對於您可以使用類似的mod_rewrite對不同站點的URL映射到同一個腳本或者您可以在包括/需要的常用功能每個位置有PHP腳本的常用功能。

基本上有很多的選擇。你的目標應該是使網站易於維護和保持代碼的重複降到最低。

按照要求,建議閱讀:

+0

你最後一句描述了我想要達到的目標。我不知道如何在.htaccess文件之外配置Apache。我將不得不做一些研究 - 任何推薦閱讀Cletus?並感謝您的回答。 – alex 2009-08-25 05:07:23

0

您可以在Apache中使用<VirtualHost> Directive來實現此目的。要在Apache 2.x下執行此操作,請編輯httpd.conf並取消註釋此行(通常在文件末尾附近找到):Include conf/extra/httpd-vhosts.conf。然後找到該文件httpd-vhosts.conf和條目VirtualHosts格式爲:

<VirtualHost 10.1.2.3> 
DocumentRoot /home/site1 
ServerName site1.com 
</VirtualHost> 

<VirtualHost 10.1.2.3> 
DocumentRoot /home/site2 
ServerName site2.com 
</VirtualHost> 

<VirtualHost 10.1.2.3> 
DocumentRoot /home/site2 
ServerName site3.com 
</VirtualHost> 
+0

你知道任何讓你修改的主機嗎? – alex 2009-08-25 23:16:56

+0

您需要root權限才能修改系統文件。你最好是註冊一個VPS主機解決方案,一般每月25美元起。 http://www.webhostingtalk.com/web-hosting-providers/vps-hosting – jusunlee 2009-08-26 15:04:09

相關問題