2010-09-07 45 views
3

好吧,情况是我有多个php站点都使用相同的CMS在同一台服务器上运行。站点之间的CMS的核心代码或模块没有任何变化,因此希望所有站点都使用相同的代码存储库,以便更容易地保持运行相同版本的所有站点。如何使用相同的APC缓存运行多个PHP站点?

这部分很容易做到使用符号链接,但理想情况下,我希望这些文件只能由APC缓存一次,因此核心代码已经为所有网站缓存。

设置是PHP 5.2,APC,apache。

不太了解APC我猜路径是从符号链接完成的,所以它们在站点之间显示为不同的文件。在我上一份工作中使用CMS时,它使用指针文件来包含主代码,但希望避免这种情况,因为它很混乱,并且使其难以维护。另一个问题是不同的网站是否可以使用相同的缓存,在查找这个问题时,我注意到fastcgi无法在进程之间共享的问题。

任何帮助将不胜感激。

+0

我不确定你可以缓存一次,让APC使用该缓存,因为正如你所说,由于不同的基本路径,它们显示为不同的文件。如果不是符号链接,而是绝对使用它们的完整cms目录来包含它们呢? include'/path/to/cmslibrary/core.php' – Fanis 2010-09-08 07:12:17

+0

我认为通过使用指针文件,主网站中的文件包含每个相关文件,但cms本身大约有100个文件,加上更多的任何模块用过的。为了使cms本身正常工作,文件需要以某种方式物理地位于主站点的子目录中。我认为这是不可能的,耻辱,因为如果是这样,它会很好。目前在VPS上运行,所以内存是有限的。 – Conrad 2010-09-17 01:27:50

+1

对于任何感兴趣的人,我不认为这是必要的,当缓存文件时,它会调用lstat,从而给出文件的真实完整路径,忽略任何虚拟目录,因此无论如何应该正确缓存。 – Conrad 2011-02-03 20:16:48

回答

0

我认为通过使用指针文件,主网站中的文件包含每个相关文件,但cms本身大约有100个文件,加上更多用于任何模块。为了使cms本身正常工作,文件需要以某种方式物理地位于主站点的子目录中。我认为这是不可能的,耻辱,因为如果是这样,它会很好。目前在VPS上运行,所以内存是有限的。

相关问题