APC操作码缓存会破坏应用程序

时间:2013-03-06 10:51:55

标签: php zend-framework deployment apc composer-php

我使用composer来安装Zend Framework 2和其他库。每次在同一路径中重新安装应用程序后,我都必须手动清除APC(版本3.1.13)操作码缓存(PHP 5.4.8),否则会出现错误,如

PHP Fatal error:  Interface 'Zend\\Mvc\\ApplicationInterface' not found

PHP Fatal error:  include(): Cannot redeclare class zend\\eventmanager\\eventscapableinterface

每个应用程序安装后,失败的类都会不断变化。我有apc.stat=1,所以操作码缓存应该注意新部署的php文件并自动重新编译,如果我之前在同一路径上部署了应用程序。

我已经与作曲家开发人员讨论了Github上的问题,并在此处发布了我的APC设置:https://github.com/composer/composer/issues/1662。我们同意这看起来更像是一个APC问题。

1 个答案:

答案 0 :(得分:0)

我认为include_path设置了两次。当include_path调用两次时,它会使APC读取和解析混乱。确保您的ZEND项目未在include_path上调用两次。

另一个检查是您正确配置了ini设置或手动输入设置数据:

apc.include_once_override = 0
apc.canonicalize = 0
apc.stat = 0

同时,由于更新,这个问题已经解决了。