【发布时间】:2011-02-01 08:35:08
【问题描述】:
在上周,我在一个 Slicehost 切片上遇到了一个令人难以置信的烦人错误。似乎 PHP 时不时会因致命错误而失败,说明某个函数未定义。函数会发生变化,但始终是核心 PHP 函数,例如defined()、version_compare() 等。这个问题是在使用几个不同的 PHP 应用程序时发生的——PHPMyAdmin、我自己的自定义构建的应用程序等,这让我相信问题不是特定于正在运行的代码。
这里有一些细节: - Debian Lenny - Apache 2.2.9 - PHP 5.2.6-1+lenny4 和 Suhosin-Patch(运行 eAccelerator 0.9.6)
Apache 和 PHP 是从 Debian 软件包安装的。错误日志没有显示任何异常。
我认为内存可能是个问题,但 free -m 几乎总是报告超过 100MB 的可用空间。我正在尝试调查的另一件事是问题是否与 eAccelerator 有关,但是测试这个理论非常困难,因为该问题并不经常出现,而且我在此安装上使用 eAccelerator 几个月没有任何问题到现在为止。
有没有人遇到过这样的事情?为什么 PHP 会报告未定义的核心函数?
【问题讨论】:
-
您能否提供有关错误示例的确切文本?
-
致命错误:在第 N 行的 /path/to/script.php 中调用未定义函数
() 用任何 php 核心函数替换 。我见过 version_compare()、defined()、require() 等。