apc.preload_path在APC设置中做了什么?

时间:2011-08-04 06:01:42

标签: php apc

好奇。它没有记录在手册here中。

也许熟悉APC源代码的人可以解释一下?

2 个答案:

答案 0 :(得分:4)

它指定APC在启动时从中加载缓存数据的目录。在大型设置(想想100多台服务器)中,这将允许您放弃编译php文件。如果你比APC和php编译器或其他类型的默认数据更聪明,你也可以提供自己的编译。

this one occurence外,它尚未使用。除非您遇到上述问题之一,否则不应设置它。

答案 1 :(得分:1)

在撰写本文时,由于APC源代码中的错误,该选项被破坏了 这将不允许您正确预加载缓存。

在名为“main_apc.c”的方法中的“static int apc_load_data(const char *data_file TSRMLS_DC)”内,需要存储的值的键长度由以​​下行确定:

key_len = strlen(key);

如果我是正确的,这只是字符串本身的长度而没有空终止符 但是,“_apc_store”似乎需要包含终结符的密钥字符串的长度。 如果我将上面的行更改为:

key_len = strlen(key)+1;

然后预加载功能按预期工作。

您还可以注意到查看用户缓存条目apc.php时缺少1个字符。但是,如果您尝试将其用作密钥,那么APC将不会返回内容,因此无法作为解决方法。

相关问题