带有 APC 的 PHP:致命错误:无法重新声明类

2022-08-30 21:02:18

由于我用PECL为PHP安装了APC,我有时会遇到以下错误:Cannot redeclare class xxx

xxx 会不时更改。我可以禁用APC,但APC大大提高了性能!是否存在已知的错误,或者我是否可以执行其他操作来防止这些错误?我使用的是 Ubuntu 8.04 LTS 和 PHP 5.2.4。


编辑/更新(来自评论):

我使用Zend框架自动加载程序,在我启用APC之前从未发生过这些错误。例如,不久前我得到这个错误:Fatal error: require(): Cannot redeclare class zend_db_adapter_abstract in /paths/app/lib/Zend/Db/Select.php on line 27


答案 1

以下配置的组合为我修复了它:

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

如果没有所有3个,我会不断得到错误,但是对于所有三个,我似乎不再得到错误:)!


答案 2

一旦我启用了APC,我就遇到了一堆PHP库的相同问题。经过多次拉扯头发,我发现这种设置可以解决问题。仍在监视,但尚未再次出现问题(在此之前,我能够通过清除apc缓存来诱导错误)。apc.include_once_override = 0


推荐