Php Symfony 1.4/条令1.2无法识别APC扩展已加载
我正在尝试将APC配置为与我的Symfony 1.4/Doctrine 1.2网站一起使用。我目前正在使用WAMP 2.1,并且成功安装了APC扩展。当我执行phpinfo()时,我会得到一个说明,说明APC已启用Php Symfony 1.4/条令1.2无法识别APC扩展已加载,php,apache,symfony1,doctrine,apc,Php,Apache,Symfony1,Doctrine,Apc,我正在尝试将APC配置为与我的Symfony 1.4/Doctrine 1.2网站一起使用。我目前正在使用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: 3036
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扩展才能使用此后端!”
在C中:…\lib\vend
或\symfony-1.4.14\lib\plugins\sfDoctrinePlugin\lib\vendor\doctrine\doctrine\Cach e\Apc.php:44
我一直在谷歌上到处搜索,但我似乎无法找到答案。我重新启动WAMP没有用。我想这可能是我下载的APC扩展的问题。我读到我必须为WAMPServer2.1使用VC6编译版本,所以我这样做了。我发现了一个标记为“php_apc_316_php53_vc6.dll”的二进制文件。事实上,我可以看到它在phpinfo()中被启用,这意味着它的安装正确吗?在ProjectConfiguration.class中添加该行之前,我是否缺少一些symfony配置?另一方面,当我尝试使用memcache作为查询缓存时,即使我的memcache服务器安装并运行正常,我也会遇到完全相同的错误,这让我相信我错过了某种Symfony/doctor配置步骤
任何帮助都将不胜感激!谢谢
弗兰克明白了。原来这是一个简单的解决办法。我在CLI中使用的php与安装APC时使用的php版本不同。我的wampserver上有两个版本的PHP设置。Windows 7中的path环境变量设置为错误的php版本目录。因此,当我运行“php symfony cc”时,它使用了错误的php版本 这里值得赞扬:
希望这对其他人有所帮助。请澄清一下,您是使用cli和/或web界面发现错误的吗?如果是这样的话,它可能是一个
php.ini
配置(因为cli和apache的配置不同)。感谢回复,我使用cli时出现了错误。