APC正在破坏输出

时间:2013-01-27 20:05:21

标签: php apc output corruption

我最近使用apache 2.2.15,PHP 5.4.11和APC 3.1.14将我的Web服务器切换到Centos 6.3。

我开始不时收到客户的投诉,页面无效,或出现奇怪的错误。我看到受影响的页面在输出中的随机位置有问号和其他奇怪的符号,即使源是正常的。当我更改源文件中的单个字母时,页面开始正常工作。

我怀疑APC,但我找不到任何线索何时以及为何会发生这种情况。

我使用mercurial将更改推向生产,但我已经使用这种方法多年没有问题。也许配置中的某些内容现在是新的,但遗憾的是我没有保留旧的配置。

以下是上次贪污的截图。

screenshot from a corrupted ajax response

编辑:这是我更改源中的单个字符,保存它,然后撤消文件后的响应(如果我只是重新启动Web服务器或清除APC操作码缓存):

screenshot after a fix

请注意行号不匹配,但它是100%相同的请求,因此响应也应该相同。第一个屏幕截图中的第111行根本不应该存在。它似乎来自另一个源文件...

1 个答案:

答案 0 :(得分:0)

我已将apc.stat_ctime更改为1

  

使用ctime进行验证可以避免svn或rsync等程序引起的问题,确保自上次统计以来inode没有发生变化。 APC通常只会检查mtime。

我会仔细观察这个问题,因为它每周发生一次或两次,如果这个问题解决了,就会发布在这里。