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

托管PHP应用程序的最佳实践,php,mysql,codeigniter-2,hosted-app,Php,Mysql,Codeigniter 2,Hosted App,我已经用CodeIgniter编写了一个PHP应用程序。我计划将其作为托管应用程序(软件即服务)销售 这些应用程序允许用户: 创建帐户 创建用户 管理文件 管理订单 有地址簿吗 搜寻 报告 等等 它使用一个数据库。 最好的例子就是新书。(无论如何,这不是我的竞争对手。) 我的问题是: 托管应用程序的最佳配置是什么?请记住,应用程序可以增长到数千个用户 实际配置为: 代码example.com/appfolder的一个位置 用户将在example.com上创建帐户 在用户帐户上,每个用户都有一

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

这些应用程序允许用户:

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

托管应用程序的最佳配置是什么?请记住,应用程序可以增长到数千个用户

实际配置为:

  • 代码example.com/appfolder的一个位置
  • 用户将在example.com上创建帐户
  • 在用户帐户上,每个用户都有一个使用该应用程序的链接
  • user1.example.com

    user2.example.com

    所有子域都指向同一example.com/appfolder

  • example.com有一个数据库,用于记录用户及其每月付款
  • 该应用程序托管在example.com/appfolder上,并根据url为每个用户选择一个单独的数据库
  • 对于100、200、300个用户,所有这些看起来都很好,但如果我有1000或2000个用户,我将不得不管理和备份1000或2000个数据库(每个数据库3-5MB)

    我知道我应该为所有用户建立一个单一的数据库,但这将使管理变得非常困难,而且用户数据库中存在敏感数据

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

    此配置是否会使拥有2000多个管理员用户(即2000 db)的专用服务器崩溃

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

    有更实用的方法来进行此配置吗


    如有任何建议,将不胜感激。非常感谢

    为所有用户存储数据的单个数据库或分片数据库()比2000个数据库更快、更易于维护、更简单,而且总体上优于2000个数据库

    编写管理安全性所需的代码,否则,当您试图用一个小小的模式更改来更新2000个数据库时,您将自暴自弃


    我的建议是使用一个域(没有子域),一旦你有2000个用户,你就有资金和资源来改进。

    这2000个用户创建用户,所有人都创建其他内容。所以,大约有一百万张唱片。我知道关系数据库可以处理这个问题。我的问题是关于配置的。2000数据库。磁盘I/O等。如果你能有建设性,那没关系,如果不是的话,就别说了。谢谢。你在找像这样的东西吗?所以user1.example.com被带到
    example.com/app?user=user1
    ?@bobthyasian:Nope。我已经做到了。我对托管应用程序的最佳配置感兴趣。谢谢。由于一个问题,你的问题很难回答。您正在创建一个链。没关系。但我们不知道两端之间的链条中有多少碎片。例如,一个用户只能在一个子域中活动,并且该子域也可以由管理员检查。那么,每分钟或每小时将支付多少费用?它将给数据库服务器带来多少负载?你必须用数字说话,给出你如何实现它的实际代码,因为从理论上讲,这是不可能的。我会给你一个建议。Codeigniter不适用于此。使用laravel获得更多的模块化结构。每个用户一个数据库显然是错误的。你只是在转移“难以管理”的部分;正如您所说,2000多个独立的数据库也不容易管理。您需要将所有信息保存在一个数据库中,并提供清晰的相关数据和适当的查询。话虽如此,我对你的应用还没有足够的洞察力来做出这样的断言。谢谢你的建议。我接受了你的回答。切分db概念非常有趣,但成本不高。我将使用一个域和一个db。谢谢。