我最近遇到了一些奇怪的事情,我在google搜索时找不到任何解释。
设置:我们正在使用APC
我们正在使用APC(3.1.15-dev)作为PHP(v5.5.10)Web应用程序的第一级用户数据缓存。
APC操作码缓存已禁用。
我们也有class A(val n: Int) {
def +(other: A) = new A(n + other.n)
}
object A {
implicit def fromMyInt(n: Int) = new A(n)
}
val r = 1 + new A(1)
println( r )
(这个设置很重要)。
挑战:我们要启用OPcache
不幸的是,在启用OPcache时,APC缓存在尝试保存值时会遇到问题。
解决方案:为APC指定序列化程序
apc.serializer = default
更改此设置时,APC会再次开始正常工作。
问题:发生了什么事?
虽然我们解决了这个问题,但我想更好地理解这个问题以及导致这个问题的原因。
在指定igbinary之前,我不确定哪个序列化程序被用作APC的默认值,但我可以看出它是否重要。
OPcache是否会以某种方式更改默认序列化程序?
知道发生了什么事吗?来自社区的任何见解都将受到高度赞赏: - )
答案 0 :(得分:0)
PHP 5.5.x无法使用APC。你需要使用APCu。见下文:
PHP版本:适用于PHP 5.4以上的所有PHP版本(3.1.13 - beta版本)
最新测试版:3.1.13(2012-09-03)
最新稳定版:3.1.9(2011-05-14)
状态:休眠,可能死亡(自2012年9月以来没有新版本)
(source)