5

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

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

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

我使用 mercurial 将更改推送到生产环境,但我多年来一直使用这种方法没有问题。也许配置中的某些东西现在是新的,但遗憾的是我没有保留我的旧配置。

下面是上次损坏的屏幕截图。

来自损坏的 ajax 响应的屏幕截图

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

修复后的截图

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

4

1 回答 1

0

我已将apc.stat_ctime更改为 1

使用 ctime 进行验证将通过确保自上次统计以来 inode 没有更改,从而避免由 svn 或 rsync 等程序引起的问题。APC 通常只会检查 mtime。

我会密切关注这个问题,因为它每周发生一次或两次,如果这解决了它,请在此处发布。

于 2013-01-29T11:08:48.273 回答