2011-08-16 60 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可以应对由自然的子域不同内容提供服务。