我将制作一个大约5个网站的系列。它们都需要在同一系统上运行。我计划让它们都指向同一服务器,然后根据哪个域被用来访问它,不同的内容/样式将被服务。因此,它基本上将是5个左右不同的零售网站,专门从事特定的产品类型。
但所有代码都使用相同的后端代码,因此维护起来要容易得多。我以前从来没有设置过这样的东西,我想知道是否有任何我应该考虑的信息,或者是否有人知道一个好的地方来解释如何做好这件事?
此外,我们不是托管自己,而是通过托管公司(如果这很重要)。
谢谢!
发布于 2009-06-24 13:22:00
在我看来,听起来非常直截了当,:
只要有一个目录:
/var/www/siteLibraries/foo.php或其他合适的目录。那么就有
/var/www/site1/foo.php
/var/www/site2/foo.php并在中设置默认类装入 (http://uk.php.net/manual/en/language.oop5.autoload.php),以便在专家站点实例化一个类时...它将搜索站点的本地库(用于专业覆盖),然后默认到共享库。您也可以用这种方式排列内容。
一个简短的解释,但粗略地概述一下,如果你不需要担心两个网站共享权限(我假设客户不会编辑代码),我将如何处理它。
记住:您的每个站点的代码应该从默认的代码库中进行专门化(OOP在这方面很棒)。不具体的是共享的。当然,共享代码库应该知道它是共享的,所以像logs这样的东西应该指定当错误发生时哪个特定的站点正在使用库等等。
好运
发布于 2009-06-24 13:23:16
我目前正在编写一个内容管理系统来解决这个问题。有几件事我觉得很有帮助。
当你开发你的站点时,把它们都减少到最小的公分母。也就是说,你所有的网站都有哪些元素是通用的?例如,每个网站都会有一系列的页面,可能还有某种形式的购物车系统。
对于我的系统,每个站点都有一个单独的模板文件。这样,我将PHP和HTML分开,这使得事情变得容易得多。一旦我有了最小的公分母,对我来说最困难的挑战就是区分网站。
我使用htaccess文件将example.com重定向到www.example.com -这样,我就可以可靠地从头文件中提取www.example.com,并使用它从数据库中选择给定站点的信息。
Aiden在代码特定方面也有一些好的观点。对我来说,我发现代码并不是特别的问题,而是我如何在多站点环境中实现代码的问题。
希望这能有所帮助。
发布于 2009-06-24 13:38:39
如果你想让你的网站有不同的代码库,Aiden的方法看起来很不错。
如果您的需求更简单,即所有站点都运行相同的代码,但根据域名显示不同的内容,那么您也可以使用更简单的解决方案。
将所有域指向脚本所在的同一目录,并根据HTTP "Host“值区分要发送的内容类型。
即:
$host = $_SERVER["HTTP_HOST"];
$rs = mysql_query("SELECT * FROM products WHERE website = '$host'");
// ...etc注:此代码用于说明目的。正如所写的,它容易受到SQL注入的攻击,您应该对其进行适当的保护。
https://stackoverflow.com/questions/1038266
复制相似问题