非常偶然的致命PHP错误,"could 't execute"自动装载功能


Very occasional fatal PHP error, "couldn't execute" autoload function

我不知道如何解决PHP偶尔陷入的这种奇怪状态。如果有什么想法,我将不胜感激。

也许在过去的一年里,我的网站会有3到4次开始返回500个错误,日志显示:

PHP致命错误:无法在第0行执行方法dw__autolload

dw__autolload是通过spl_autoload_register注册的。当我重新启动apache时,这个问题就消失了,我忘记了它好几个月。我在ubuntu 10.04.3上运行APC, php 5.3.2-1ubuntu4.10。我意识到这里没有什么可说的!

从这个错误发生的地方开始,我冒着风险(心灵调试,因为你没有更多的细节)说,这是因为调用自动加载时已经抛出了一个异常。

也就是说,我看不出这到底是怎么发生的。当前异常在调用自动加载程序之前和调用每个SPL自动加载程序函数之后都被清除。我认为,如果没有重现这个问题的脚本,我们永远无法得出结论。所有的可能性是:

  • 执行已被关闭
  • 当前有一个异常
  • 函数不再有效(我看到这种情况只发生在PHP中的错误,但无论如何,这是不太可能的,因为它几乎肯定会生成一个警告之前)
  • 自动加载器函数需要一个引用(同样,这也会在之前生成一个警告,并且你的自动加载器永远不会工作)