【问题标题】:How to run multiple PHP sites using same APC cache?如何使用相同的 APC 缓存运行多个 PHP 站点?
【发布时间】:2010-09-07 23:04:02
【问题描述】:

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

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

设置是 PHP 5.2、APC、apache。

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

任何帮助将不胜感激。

【问题讨论】:

  • 我不确定您是否可以只缓存一次并让 APC 使用该缓存,因为正如您所说,由于不同的基本路径,它们显示为不同的文件。如果您完全使用完整的 cms 目录而不是符号链接来包含它们怎么办?包括'/path/to/cmslibrary/core.php'
  • 我考虑过通过使用指针文件,主网站中的一个文件来包含每个相关文件,但 cms 本身大约有 100 个文件,加上任何使用的模块更多。为了使 cms 本身正常工作,文件需要以某种方式物理地位于主站点的子目录中。我在想这是不可能的,耻辱,因为如果是这样就好了。目前在 VPS 上运行,因此内存有限。
  • 对于任何感兴趣的人,我认为没有必要,在缓存文件时它会调用 lstat ,它给出文件的真实完整路径,忽略任何虚拟目录,所以它应该得到无论如何都正确缓存。

标签: php apache apc


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2011-08-07
    • 2010-12-02
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多