如何处理访问一个"大脑"的多个站点?

ale*_*lex 6 php mysql kohana multiple-sites

一般来说,我的开发只涉及中小型公司和电子商务网站.

我的下一个项目将包括30个站点 - 但是,它们彼此之间有大约95%的共同点.我希望他们有一个'大脑',这意味着我可以推出更改,更新框架等只一次.

我想知道Stack Overflow系列网站是否这样做(超级用户,stackoverflow,serverfault等).

我选择的语言/平台是PHP 5.3,MySQL 5和Kohana Framework.

大脑应该有

  • 1个可以处理每个站点的管理系统
  • 所有模板都存在于大脑中 - 但是它们有占位符,例如标题,徽标等
  • 我可以推出任何全局模板更新的方法将自动过滤到所有其他网站.

我意识到这会给大脑带来很大的压力,所以我必须经常使用服务器端缓存.

我如何让每个域访问大脑,例如:

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

默默地访问http://www.mothership.com/mysite2/products/something

那会是最好的方法吗?你有什么建议吗?我是在正确的轨道上吗?

随意问我更多具体细节.

cle*_*tus 3

最简单的方法是使用虚拟主机。基本上您在一台机器上运行所有站点。一台机器有一个为所有站点提供服务的 Apache 配置。

如果站点的相似性大于差异,则只需将所有站点指向一个目录即可。PHP 文件可以检测它们正在服务的站点。您可以为每个站点提供不同的页眉和页脚来处理外观。您还可以通过这种方式限制某些页面。

如果这些站点的不同之处多于相似之处,则将每个站点指向不同的目录,并在每个目录中包含与这些站点相关的页面。

对于通用功能,您可以使用 mod_rewrite 之类的工具将不同站点上的 URL 映射到同一脚本,或者您可以在包含/需要通用功能的每个位置都有 PHP 脚本。

基本上有很多选择。您的目标应该是使网站易于维护并将代码重复保持在绝对最低限度。

根据要求,建议阅读: