phpMyAdmin 安装 APC 和 memcached 后显示空白页

phpMyAdmin 安装 APC 和 memcached 后显示空白页

我在 CentOS 5.6 上运行带有 PHP 5.3 的 LAMP 堆栈。我安装了 phpMyAdmin,它运行正常。我可以登录并执行任何操作。然后我安装了memcached它的 PHP 扩展以及 APC 及其 PHP 扩展。我重新启动httpd后,phpinfo()显示memcacheAPC 已安装并配置完毕。

memcache那么为什么 phpMyAdmin 在安装和 APC后现在显示空白页?

答案1

在你的 php.ini 文件中,告诉 APC 不要缓存 phpMyAdmin 目录类似于添加:

apc.filters = "-/usr/share/phpmyadmin/.*"

答案2

根据此错误报告在 PHP 官方网站上,用户ian dot matthews at imsoft dot co dot uk认为这是一个 APC 错误:

这是因为 APC 不能正确处理 include/require 路径。例如,一个典型的 include 示例是:

require_once './libraries/common.inc.php';

APC 无法正常工作,在我的例子中,它将“.”视为 apache 目录,而不是当前目录。虽然这似乎是 APC 问题,但 phpmyadmin 可以通过以下方法提供帮助:(1) 当 require 更好时,不要无端使用 require_once;(2) 尽可能使用完整路径,即执行以下操作:

require dirname(__FILE__) . '/subdir/file_to_include.php' ;

但这基本上意味着您应该调整 phpMyAdmin 的某些部分以弥补 APC 问题。 建议的一些更实用的解决方案damian dot pastorini at gmail dot com是将以下行添加到php.ini

apc.cache_by_default = 0 

或者通过 Apache 配置禁用 phpMyAdmin 的 APC,如下所示:

<Directory "/usr/share/phpmyadmin">
    php_admin_flag apc.enabled Off
</Directory>

我建议该路径,/usr/share/phpmyadmin因为虽然您没有提供有关系统安装 phpMyAdmin 的详细信息,但这是在 Ubuntu 中通过 RPM 安装yum甚至通过apt-get/进行 DEB 安装时安装的典型位置。aptitude

相关内容