web-dev-qa-db-ja.com

APCとmemcachedをインストールした後、phpMyAdminが空白のページを表示する

CentOS5.6でPHP 5.3のLAMPスタックを実行しています。phpMyAdminをインストールして動作しました。ログインして何でもできました。次に、memcachedをインストールしました。そのPHP拡張機能とAPCであり、PHP拡張機能です。httpdを再起動しました。phpinfo()memcacheとAPCがインストールおよび構成されています。

では、memcacheとAPCをインストールした後、phpMyAdminが空白のページを表示するのはなぜですか?

1
Nbrochu

Php.iniファイルで、 phpMyAdminディレクトリをキャッシュしないようにAPCに指示します 追加の行に沿って:

apc.filters = "-/usr/share/phpmyadmin/.*"
1
Eric Caron

このバグレポート 公式のPHPサイトでは、ユーザーian dot matthews at imsoft dot co dot ukはそれがAPCのバグであると信じています:

これは、APCがインクルード/リクワイアパスを正しく処理しないためです。たとえば、一般的なインクルードの例は次のとおりです。

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

APCは正しく機能せず、私の場合は「。」を考慮します。現在のディレクトリではなく、Apacheディレクトリとして。これはAPCの問題のようですが、phpmyadminは、(1​​)require_onceを不必要に使用しない方がよい場合、および(2)可能な場合はフルパスを使用する、つまり次のようなことを行うことで解決できます。

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

しかし、それは基本的に、APCの問題を補うためにphpMyAdminの一部を微調整する必要があることを意味します。 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>

PhpMyAdminのシステムインストールの詳細を提供していないので、パス/usr/share/phpmyadminを提案しています。これは、yumまたはDEBインストールを介してRPMインストールを実行するときにインストールされる一般的な場所です。 Ubuntuではapt-get/aptitude経由。

0
JakeGould