我有一个网络服务器,上面有很多基于 Drupal 的网站。这些网站共享绝大多数相同的代码,如果 APC 能够利用这一点,而不是多次“重新缓存”相同的文件,那就太好了。
这个想法在理论上是否存在问题?据您所知,是否有任何 PHP 操作码缓存利用了这一点?
答案1
答案似乎是否定的,至少就目前情况而言。
答案2
apc.file_md5 无法解决重复问题,因为它无法识别缓存的文件。请参阅问题apc.file_md5 有什么作用(替代 PHP 缓存)?
为了避免重复,也许符号链接一些 Drupal 目录是可行的。因此,
/vhost1/drupal/includes/(a lot of files)
/vhost2/drupal/includes/(a lot of files)
你可以有
/vhost1/drupal/includes => /path/to/drupal-master/includes/
/vhost2/drupal/includes => /path/to/drupal-master/includes/
请注意,使用此技巧运行的所有 Drupal 实例必须是同一版本...如果不是,则可能会发生不好的事情 ;-P
答案3
你应该发布你的 APC 运行时配置。你试过设置“apc.file_md5”来提供帮助吗?关于此选项的文档很少,但它声音就像它所做的是对文件进行 MD5 缓存并(希望)比较它们而不是依赖于文件的真实路径......