Symfony 1.4/Doctrine 1.2 Web サイトで動作するように APC を構成しようとしています。現在 WAMP 2.1 を使用しており、APC 拡張機能を正常にインストールしました。phpinfo() を実行すると、APC が有効になっていることを示す説明が表示されます。
apc
APC Support enabled
Version 3.1.6
APC Debugging Disabled
MMAP Support Disabled
Locking type File Locks
Revision $Revision: 303642 $
Build Date Dec 1 2010 21:08:06
Directive Local Value Master Value
apc.cache_by_default On On
apc.canonicalize On On
apc.coredump_unmap Off Off
apc.enable_cli Off Off
apc.enabled On On
apc.file_md5 Off Off
apc.file_update_protection 2 2
apc.filters no value no value
apc.gc_ttl 3600 3600
apc.include_once_override Off Off
apc.lazy_classes Off Off
apc.lazy_functions Off Off
apc.max_file_size 10M 10M
apc.num_files_hint 1000 1000
apc.preload_path no value no value
apc.report_autofilter Off Off
apc.rfc1867 Off Off
apc.rfc1867_freq 0 0
apc.rfc1867_name APC_UPLOAD_PROGRESS APC_UPLOAD_PROGRESS
apc.rfc1867_prefix upload_ upload_
apc.rfc1867_ttl 3600 3600
apc.shm_segments 1 1
apc.shm_size 64M 64M
apc.slam_defense On On
apc.stat On On
apc.stat_ctime Off Off
apc.ttl 0 0
apc.use_request_time On On
apc.user_entries_hint 4096 4096
apc.user_ttl 0 0
apc.write_lock On On
ただし、symfony の ProjectConfiguration.class で APC を使用するようにクエリ キャッシュを設定しようとすると、APC 拡張機能が読み込まれていないというエラーが表示されます。
public function configureDoctrine(Doctrine_Manager $manager)
{
$manager->setAttribute(Doctrine_Core::ATTR_QUERY_CLASS, 'Doctrine_Query_Extra');
$manager->setAttribute(Doctrine_Core::ATTR_QUERY_CACHE, new Doctrine_Cache_Apc()); //use APC to query cache
}
キャッシュのクリア (php symfony cc) を実行したときに発生するエラーは次のとおりです。
致命的なエラー:「このバックエンドを使用するには、apc 拡張機能をロードする必要があります!」というメッセージのキャッチされない例外「Doctrine_Cache_Exception」C:..\lib\vend または\symfony-1.4.14\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Cach e\Apc.php:44
私はどこでもグーグルで調べてきましたが、それを理解できないようです。WAMP を再起動してもダメでした。ダウンロードした APC 拡張機能に問題があるのではないかと考えています。WAMPSERVER 2.1にはVC6コンパイルバージョンを使用する必要があると読んだので、そうしました。「php_apc_316_php53_vc6.dll」というラベルの付いたバイナリを見つけました。phpinfo() で有効になっていることがわかるという事実は、正しくインストールされていることを意味するはずですか? ProjectConfiguration.class にその行を追加する前に、いくつかの symfony 構成が欠落していますか? 余談ですが、memcache サーバーがインストールされ、適切に実行されているにもかかわらず、memcache をクエリ キャッシュとして使用しようとすると、まったく同じエラーが発生します。
どんな助けでも大歓迎です!ありがとう!フランク