清除APC缓存后,PHP只需要工作一次,然后500错误。为什么?

时间:2011-05-11 11:47:10

标签: php apc

我有一个APC问题。 Parent.php包含另一个具有相对路径的文件。 e.g。

require_once'child.php';

如果我清除apc_cache,然后加载Parent.php,它就可以了。 但是在随后的加载中,它失败了。死于require_once'child.php'。

显然,保存到apc_cache时的相对路径在下次加载时没有正确转换...

apc.include_once_override已关闭,因此不是。

还有什么呢?

编辑以添加错误: PHP致命错误:require_once()[function.require]:需要打开失败 '路径/到/ file.php'

4 个答案:

答案 0 :(得分:3)

如果您的配置中有apc.stat=0,则您的问题可能与此错误有关:https://bugs.php.net/bug.php?id=61854

在我的PHP配置中设置apc.stat=1为我解决了这个问题。

答案 1 :(得分:0)

这是一个延伸,但当我处理硬链接文件时,我看到了与此相关的问题,这些文件可能通过不同的路径缓存。

无论如何,听起来像一个bug。您是最新的PHP和APC版本吗?如果是,请发布错误报告。

答案 2 :(得分:0)

我曾经在APC的相对路径上遇到过一个奇怪的问题。问题是它死于致命错误,我已经按照thread here解决了这个问题:

在我的项目中,以下几行让它发挥作用:

// Realpath needed to fix problem with APC
require_once realpath($fullPath);

答案 3 :(得分:0)

有同样的问题,为我的php版本下载正确的版本解决了这个问题。你可以在这里找到一堆版本(如果在windows上运行):http://dev.freshsite.pl/php-accelerators/apc.html