2012-06-28 107 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擴展不加載,當我嘗試設置查詢緩存在symfony的ProjectConfiguration.class使用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):

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擴展的問題。我讀過我必須使用WAMPSERVER 2.1的VC6編譯版本,所以我這樣做了。我找到了一個標有「php_apc_316_php53_vc6.dll」的二進制文件。我可以看到它在phpinfo()中啓用的事實意味着它的安裝正確嗎?在ProjectConfiguration.class中添加該行之前是否缺少一些symfony配置?另外,當我嘗試使用memcache作爲查詢緩存時,即使我的memcache服務器已正確安裝並正常運行,但我仍然有相同的錯誤,這導致我相信我錯過了某種Symfony/Doctrine配置步驟。

任何幫助將不勝感激!謝謝! 弗蘭克

+1

爲了澄清,您使用cli和/或Web界面出現錯誤?如果是這樣,它可能是一個'php.ini'配置(因爲它們對於cli和apache是​​不同的) – j0k

+0

感謝回覆jOk,我使用cli得到了錯誤。 – frankp221

回答

0

想通了。原來這是一個簡單的修復。我在我的CLI中使用的php關聯的版本不同於我安裝APC的php版本。我在我的wampserver上安裝了2個PHP安裝版本。 Windows 7中的路徑環境變量被設置爲錯誤的php版本目錄。所以當我運行「php symfony cc」時,它使用了錯誤的php版本。

幸得此:http://oldforum.symfony-project.org/index.php/m/93957/?srch=memcached#msg_93957

希望這有助於人。