phpMyAdmin:PHP致命错误 - 无法重新声明PMA_checkLink()

时间:2013-04-16 11:15:45

标签: php mysql apache phpmyadmin

我最近在尝试访问托管的phpMyAdmin时遇到了问题。我在尝试访问它时遇到了500个内部服务器错误,并且正如我所希望的那样只能在浏览器中找到空白页面。

我查看了phpMyAdmin的错误日志,发现以下错误正在引发:

PHP Fatal error:  Call to undefined function PMA_sanitize() in /usr/share/phpMyAdmin/libraries/Message.class.php on line 541

首先,我重新安装了phpMyAdmin,之后,在我再次遇到同样的问题之前能够正常访问它。

我浏览了一下网页,看到了以下博客here,并找到了解决此问题的方法。我做了博客建议并添加了以下内容:

require_once('./libraries/sanitizing.lib.php');

位于以下文件的顶部:

/usr/share/phpMyAdmin/libraries/Message.class.php

这工作了一段时间,但后来又有500个内部服务器错误。所以我再次检查错误日志并收到以下错误消息:

PHP Fatal error:  Cannot redeclare PMA_checkLink() (previously declared in /usr/share/phpMyAdmin/libraries/sanitizing.lib.php:15) in /usr/share/phpMyAdmin/libraries/sanitizing.lib.php on line 35

除了这些致命错误,我收到以下警告信息,但不确定这些是否与此问题有关:

PHP Warning:  Unknown: Unable to allocate memory for pool. in Unknown on line 0

PHP Warning:  require_once(): Unable to allocate memory for pool. in /usr/share/phpMyAdmin/index.php on line 13

PHP Warning:  require(): Unable to allocate memory for pool. in /usr/share/phpMyAdmin/libraries/common.inc.php on line 52

PHP Warning:  require_once(): Unable to allocate memory for pool. in /usr/share/phpMyAdmin/libraries/Error_Handler.class.php on line 12

PHP Warning:  require_once(): Unable to allocate memory for pool. in /usr/share/phpMyAdmin/libraries/Error.class.php on line 12

我正在使用PHP版本5.3.3,Apache版本2.2.15,mysql版本5.1.61和phpMyAdmin版本3.5.7

如果有人能够对此有所了解,那就太棒了!

1 个答案:

答案 0 :(得分:2)

require_once(): Unable to allocate memory for pool.表示没有足够的内存来包含来自PhpMyAdmin的一些声明文件。

这些文件尚未包含,但未加载它们包含的定义。因此,您的第一个错误Call to undefined function PMA_sanitize()

您链接的博客文章建议在一个可疑的位置添加一个包含,导致您包含一些不应该包含的定义文件。因此,您的第二个错误Cannot redeclare PMA_checkLink()

如果我是你,我会回滚PhpMyAdmin代码中的所有更改并尝试解决第一个问题。 This question可能会为您提供正确的程序。