我们正在开发一个将作为托管解决方案提供的应用程序。我对如何在不复制基本代码的情况下使用具有相同代码的多个站点感到震惊。
例如:网站1: www.example.com和网站2: www.sample.com将在相同的代码上运行,但具有不同的配置设置和不同的主题……就像我们在wordpress中运行自己的域名一样。
我想知道怎样才能做到这一点。
在数据库的情况下也是如此。如果我为每个网站创建单独的数据库,或者使用具有网站ID的相同数据库作为每个表中的一列,会更好吗?
请帮帮我。
澄清其不是域别名。比如..。这将是一项服务。其中不同的客户将提供不同的主题在自己的域名上相同的应用程序。就像blogger做的那样..拥有自己的域名但使用相同的博客应用程序
技术方面,我特别研究了如何使用主机名来确定要使用的配置我们使用的是PHP和MySQL
发布于 2009-11-22 01:49:11
重用代码绝对是可取的。从你的帖子中很难想象这些网站会有多么的不同。我们是在讨论徽标、配色方案还是不同的功能?
我将从不同的外观和感觉开始。我还假设这是服务器上唯一的应用程序。
我建议您仔细规划目录结构。类似于:
www-root/
/ lib
/ themes
/ domain1
/ domain2
index.php:
<?php
$host = $_SERVER['HTTP_HOST'];
$include_theme = "themes/" . $host . "/configuration.php";
//make sure the file exists
require_once($include_theme);这是一种简单化的方法,但有些东西需要考虑。
发布于 2009-11-15 16:51:27
实际上,这很简单。
你的代码库可以也应该是单一的。你把它上传到hosting1和hosting2上。在维护时,一旦更新了代码,就将其上传到两个托管空间。
我想这也是这个网站的工作方式。看看这页的页脚。这里有stackoverflow、meta、superuser和serverfault。如果你看看右下角的评论是怎么说的,它应该是"svn版本: 5404“。同样的事情。一个代码库发布到四个站点。当然,数据库是不同的,包含完全不同的内容。
所以变量部分是:
你需要复制的那些。
您需要这样编写代码,即配置和设置不是硬编码的,而是存储在某个数据库表中,或者至少存储在一些外部配置文件中。它们不是代码的一部分(如果你愿意,也可以是实现的一部分),所以它们不需要在代码中。如果你把它们放进去,就把它们拿出来。
发布于 2009-11-22 02:05:53
我们现在用大约15,000个独特的域名做到了这一点。这并不困难,但要正确实现它确实需要一些设计上的考虑。
您可以在单个代码库和服务器上执行此操作,基本上只需构建完全依赖于传入请求的HTTP_HOST值的代码即可。然后,数据库中的所有内容都将该值作为一种适当分离数据的方法,并使用适当的data/html响应请求。
https://stackoverflow.com/questions/1737019
复制相似问题