2011-08-16 53 views
0

我想知道網站複製的概念,當用戶註冊一個子域時創建,用戶可以在線創建他的網站。就用這種方式在www.empowerkit.com正在做網站複製使用PHP

回答

1

許多方式來構建多租戶SaaS。

還有就是單個站點,單個數據庫的數據庫方法:

基本上你的網站結合聽取*專用IP地址。

DNS綁定* .yourdomain.com到IP地址的

有您的註冊功能創建一個包含子域的客戶數據庫記錄。

有路由代碼,可以判定用戶ID是什麼子域上的特定要求,然後使用行級過濾你的數據存儲庫,以只對特定的客戶ID返回數據。

你也可以有你的代碼中創建文件系統上的一個完整而獨立的網站,並添加適當的virtualhosts項新網站。

優點:從多個數據庫實例較少的數據庫開銷,輕鬆備份和恢復(單個數據庫) 缺點:有點工作獲取數據的訪問,更難分片

再有就是單點,多-database:

與上面相同,但子域映射到一個特定的客戶數據庫。

優點:更容易分片,客戶數據庫更好的隔離

缺點:高內存開銷,需要大量的數據庫實例,很難備份

最後,多站點多數據庫

您可以創建單獨的物理站點並在註冊期間爲客戶添加適當的虛擬主機記錄,併爲該客戶端創建單獨的數據庫

優點:簡單的應用程序代碼,易於擴展,更好的用戶隔離,如果需要,更容易定製「每個用戶」。

缺點:複雜的「註冊碼」,需要大量資源,要求您的應用程序具有對重要配置文件的寫入權限,浪費大量磁盤空間。

這取決於您的應用程序如何工作以及您提供的每個用戶自定義內容。

+0

以上任何一種多租戶SaaS方式,我們是否能夠創建網站複製? – rahul

+0

您需要闡明「網站複製是什麼」。如果您希望能夠爲個別客戶在子域名上創建「獨立」網站,那麼是的。這一切只取決於你想要你的特定應用程序做什麼。所有用戶內容都存儲在數據庫中嗎?用戶是否需要訪問文件系統?你會有多少用戶?你需要什麼樣的可擴展性?你和業務需要考慮和衡量的服務器等等等等。正如另一個答案中所建議的,使用DirectAdmin這樣的「控制面板」只是一個「多站點多數據庫」實現。 –

1

嗯,你可以在子域部分:

  1. 使用數據庫的.htaccess重定向
  2. 使用控制面板中的API(如DirectAdmin API)

用戶可以使用所見即所得編輯器(作爲CMS)創建自己的網站,並將所有內容保存到SQL數據庫中,稍後可以檢索以顯示頁。

+0

謝謝,讓我知道如何在子域上工作 – rahul

0

我不認爲有一個簡單的答案你問什麼。最有效的解決方案實際上具有處理產品內置子域的概念。

這一切都取決於你要部署和在什麼環境中運行您的網站。

許多CMSes可以應對由自然的子域不同內容提供服務。