托管PHP应用程序的最佳实践

时间:2013-02-23 06:15:26

标签: php mysql codeigniter-2 hosted-app

我用CodeIgniter编写了一个PHP应用程序。我计划将其作为托管应用程序(软件即服务)出售。

这些应用允许用户:

  • 创建帐户
  • 创建用户
  • 管理文件
  • 管理订单
  • 有一个地址簿
  • 搜索
  • 报告 等等。 它使用一个数据库。 最好的例子是Fresh Books。 (无论如何,这不是我的竞争对手。)

我的问题是:

托管应用程序的最佳配置是什么?请记住,该应用程序可以增长到成千上万的用户。

实际配置为:

  1. 代码example.com/appfolder
  2. 的一个地方
  3. 用户将在example.com上创建帐户
  4. 在用户帐户上,每个用户都有一个链接,可以使用该应用
  5. user1.example.com

    user2.example.com

    .................

    所有子域名都指向相同的example.com/appfolder

    1. example.com有一个数据库,用于记录用户及其每月付款
    2. 该应用程序托管在example.com/appfolder上,并根据网址为每个用户选择一个单独的数据库。
    3. 对于100,200,300名用户来说,一切看起来都很好但是如果我有1000或2000个用户,我将需要管理和备份1000或2000个数据库(每个3-5MB)

      我知道我应该为所有用户提供一个数据库,但这会使管理起来非常困难,并且用户数据库中存在敏感数据。

      最重要的是,用户可以创建可以使用相同应用程序的用户,但只能创建由admin用户创建的子域(在exmaple.com上注册)

      此配置是否会崩溃具有超过2000个管理员用户的专用服务器(这意味着2000 db)?

      Basic与CMS非常相似,但更专业。

      有更实用的方法可以进行此配置吗?

      任何建议都将不胜感激。提前谢谢了。

1 个答案:

答案 0 :(得分:1)

为所有用户存储数据的单个数据库或分片数据库(http://www.codefutures.com/database-sharding/)更快,更易于维护,更简单,并且比2000数据库更好。

编写管理安全性所需的代码,或者稍后当您尝试通过小型架构更改来更新2000数据库时,您将自己开始。

我的建议是使用单个域名(没有子域名),一旦拥有2000个用户,您将有足够的资金和资源来改进。