CentOS5.6でPHP 5.3のLAMPスタックを実行しています。phpMyAdminをインストールして動作しました。ログインして何でもできました。次に、memcached
をインストールしました。そのPHP拡張機能とAPCであり、PHP拡張機能です。httpd
を再起動しました。phpinfo()
はmemcache
とAPCがインストールおよび構成されています。
では、memcache
とAPCをインストールした後、phpMyAdminが空白のページを表示するのはなぜですか?
Php.iniファイルで、 phpMyAdminディレクトリをキャッシュしないようにAPCに指示します 追加の行に沿って:
apc.filters = "-/usr/share/phpmyadmin/.*"
このバグレポート 公式の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
経由。