如何在同一个APC缓存中运行多个PHP站点?

3

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

这部分很容易使用符号链接完成,但理想情况下,我希望文件只被APC缓存一次,以便所有站点的核心代码已经被缓存。

设置是PHP 5.2、APC、apache。

不了解APC的情况下,我猜测路径是通过符号链接完成的,因此它们在站点之间看起来像是不同的文件。在���的上一个工作中,CMS使用指针文件包含主要代码,但希望避免这种方法,因为它会使维护更加困难和混乱。另一个问题是不同的站点是否可以使用相同的缓存,在���找这个问题时,我注意到了fastcgi无法在进程之间共享的问题。

非常感谢您的帮助。


我不确定您是否可以只缓存一次并让APC使用该缓存,因为根据不同的基本路径,它们看起来像不同的文件。如果不使用符号链接,而是绝对包含它们并使用其完整的CMS目录,会怎样?包括'/path/to/cmslibrary/core.php'。 - Fanis Hatzidakis
我考虑过使用指针文件,在主网站中包含每个相关文件,但是CMS本身大约有100个文件,再加上任何使用的模块。为了使CMS正常工作,这些文件需要以某种方式实际存在于主站点的子目录中。我认为这似乎不太可能,很遗憾,因为如果可以的话会很好。目前在VPS上运行,因此内存有限。 - Conrad
1
对于任何感兴趣的人,我认为在缓存文件时并不必要,因为它会调用lstat来获取文件的真实完整路径,忽略任何虚拟目录,所以它应该能够正确地被缓存。 - Conrad
1个回答

0
我考虑过使用指针文件,在主网站中包含每个相关文件,但CMS本身大约有100个文件,再加上任何使用的模块。为了让CMS正常工作,这些文件需要以某种方式物理地位于主站点的子目录中。我认为这并不是真正可能的,很遗憾,因为如果可以的话,那将是很好的。目前在VPS上运行,所以内存有限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接