在同一服务器上共享代码的多个站点

问题描述:

我将制作一系列约5个站点。他们需要全部运行在同一个系统上。我计划让它们都指向同一台服务器,然后根据使用哪个域来访问它,将提供不同的内容/样式。因此,它基本上将成为5个左右不同的专门从事特定产品类型的零售网站。在同一服务器上共享代码的多个站点

但所有使用相同的后端代码,以便更容易维护。我以前从未设置过类似的东西,想知道是否有任何我应该考虑的信息,或者是否有人知道解释如何做到这一点的好地方?

此外,我们不托管自己,但通过托管公司(如果这件事)。

谢谢!

听起来很直截了当对我说:

只要有一个目录:

/var/www/siteLibraries/foo.php 

或其他合适的目录。然后有

/var/www/site1/foo.php 
/var/www/site2/foo.php 

并设置默认的类加载在PHP(http://uk.php.net/manual/en/language.oop5.autoload.php),这样,当专家站点实例化一个类...它会搜索站点的本地库(专科覆盖),然后默认共享库。你也可以这样安排内容。

一个简单的解释,但如果你不需要担心这两个站点共享权限(我假设客户端不会编辑代码),我将如何解决它的大致概述。

切记:您的每个站点代码应该专门从默认代码库(OOP非常适合)。什么是不具体的,是共享的。当然,共享代码库应该知道它是共享的,所以像日志应该指定哪个特定的站点在发生错误时使用该库。

好运

我目前以书面形式,解决此问题的确切内容管理系统的过程。我发现一些有用的东西。

开发您的网站时,请将它们分别降至最低公分母。也就是说,您所有网站的共同元素是什么?例如,每个网站都会有一系列的页面,可能还有某种形式的购物车系统。

对于我的系统,我为每个站点都有单独的模板文件。这样,我保持我的PHP和HTML分开,这使事情变得更容易。一旦我拥有最低的共同点,对我来说最难的挑战就是将网站分开。

我用我的htaccess文件将example.com重定向到www.example.com - 这样,我就可以可靠地从标题中获取www.example.com,并使用它来选择给定站点的信息来自数据库。

艾登在代码特定方面也有一些优点。对我而言,我发现代码并不是特别的问题,而是我如何在多站点环境中实现该代码。

希望这会有所帮助。

如果你希望你的网站有不同的代码库,Aiden的方法看起来不错。

如果您的需求比较简单,即所有网站都运行相同的代码,但基于域名显示不同内容,那么您也可以使用更简单的解决方案。

将所有域指向您的脚本所在的同一目录,并根据HTTP“主机”值区分要发送的内容类型。

即:

$host = $_SERVER["HTTP_HOST"]; 

$rs = mysql_query("SELECT * FROM products WHERE website = '$host'"); 

// ...etc 

N.B:该代码是用于说明性的目的。正如所写的,它很容易受到SQL注入攻击,应该适当地保护它。