我最近在尝试访问托管的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
如果有人能够对此有所了解,那就太棒了!
答案 0 :(得分:2)
require_once(): Unable to allocate memory for pool.
表示没有足够的内存来包含来自PhpMyAdmin的一些声明文件。
这些文件尚未包含,但未加载它们包含的定义。因此,您的第一个错误Call to undefined function PMA_sanitize()
。
您链接的博客文章建议在一个可疑的位置添加一个包含,导致您包含一些不应该包含的定义文件。因此,您的第二个错误Cannot redeclare PMA_checkLink()
。
如果我是你,我会回滚PhpMyAdmin代码中的所有更改并尝试解决第一个问题。 This question可能会为您提供正确的程序。