2012-06-28 4 views
0

Я пытаюсь настроить APC для работы с моим сайтом Symfony 1.4/Doctrine 1.2. В настоящее время я использую WAMP 2.1, и я успешно установил расширение APC. Когда я делаю phpinfo(), я получаю описание, показывающее, что APC включен.Symfony 1.4/Doctrine 1.2 не может распознать расширение 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 

Однако я получаю ошибку говоря расширение APC не загружен, когда я пытаюсь установить кэш запросов использовать APC в симфони ProjectConfiguration.class:

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 куб.см):

Fatal error: Uncaught exception 'Doctrine_Cache_Exception' with message 'The apc extension must be loaded for using this backend !' in C:..\lib\vend or\symfony-1.4.14\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\Doctrine\Cach e\Apc.php:44

Я погуглить везде, и я не могу понять это. Я перезапустил WAMP безрезультатно. Я думаю, что это может быть проблемой с расширением APC, которое я загрузил. Я прочитал, что мне пришлось использовать скомпилированную версию VC6 для WAMPSERVER 2.1, поэтому я сделал это. Я нашел двоичный код с надписью «php_apc_316_php53_vc6.dll». Тот факт, что я могу видеть, что он включен в phpinfo(), должен означать, что он правильно установлен правильно? Не хватает ли какой-либо конфигурации symfony до добавления этой строки в ProjectConfiguration.class? В стороне, у меня есть такая же ошибка, когда я пытаюсь использовать memcache в качестве кеша запросов, даже несмотря на то, что мой сервер memcache установлен и работает должным образом, что заставляет меня поверить, что мне не хватает какого-то шага конфигурации Symfony/Doctrine.

Любая помощь была бы высоко оценена! Благодаря! Фрэнк

+1

Чтобы уточнить, вы получаете сообщение об ошибке, используя cli и/или веб-интерфейс? Если это так, это может быть конфигурация 'php.ini' (поскольку они разные для cli и apache) – j0k

+0

Спасибо за ответ jOk, я получил ошибку, используя cli. – frankp221

ответ

0

Выяснил это. Оказывается, это было простое решение. Php, который я использовал в своем CLI, был связан с другой версией, чем версия php, с которой я устанавливал APC. У меня есть 2 варианта установки PHP на моем сервере wampserver. Переменная среды пути в Windows 7 была установлена ​​в неправильный каталог версии PHP. Поэтому, когда я запускал «php symfony cc», он использовал неправильную версию php.

Заслуга здесь: http://oldforum.symfony-project.org/index.php/m/93957/?srch=memcached#msg_93957

Надеется, что это помогает кому-то.

Смежные вопросы