2013-08-01 77 views
2

當我使用Zend frameword版本1.11Zend框架的同時使用mencache和緩存頁面

使用內存緩存來保存會話,但希望使用更多的Zend緩存頁面緩存頁面的html

結果我的網站:緩存頁HTML是救不了正確的緩存目錄配置,其保存公共路徑和文件數據爲空(0 KB)

爲了兄弟的幫助

我在的application.ini

; MEMCACHE CONFIG 
resources.cachemanager.memcached.frontend.name       = Core 
resources.cachemanager.memcached.frontend.options.automatic_serialization = On 
resources.cachemanager.memcached.backend.name        = Memcached 
resources.cachemanager.memcached.backend.options.servers.one.host   = 10.60.80.51 
resources.cachemanager.memcached.backend.options.servers.one.port   = 11211 
resources.cachemanager.memcached.backend.options.servers.one.persistent = On 

; session savehandler class 
resources.session.name = PHPGAME1_SESSION 
resources.session.saveHandler.class  = Zend_Session_SaveHandler_Cache 
resources.session.gc_maxlifetime   = 7200 
resources.session.cookie_domain   = ".game5.vn" 

;cofig cache page 
resources.cacheManager.page.backend.options.public_dir = PUBLIC_PATH "/cached" 
resources.cacheManager.pagetag.backend.options.cache_dir = WEB_PATH "/data/cache/tags" 
resources.frontController.params.disableOutputBuffering = true 
resources.cacheManager.page.backend.options.disable_caching = false 

我的自舉config來初始化會話處理程序

protected function _initSessionId() 
{ 
    $opts = $this->getOptions(); 
    if (isset($opts['resources']['session']['saveHandler']['class']) && 
      'Zend_Session_SaveHandler_Cache' == $opts['resources']['session']['saveHandler']['class']) { 
     $this->bootstrap('session'); 
     $cache = $this->bootstrap('cachemanager') 
     ->getResource('cachemanager') 
     ->getCache('memcached'); 
     Zend_Session::getSaveHandler()->setCache($cache); 

    }      
    $defaultNamespace = new Zend_Session_Namespace(); 
    if (!isset($defaultNamespace->initialized)) { 
     Zend_Session::regenerateId(); 
     $defaultNamespace->initialized = true; 
    } 
} 

在初始化控制器,我一直在使用助手保存的緩存頁面,想攢動緩存頁

$this->_helper->cache(array('index'), array('content')); 

非常感謝

回答

1

解決

我在配置2段:CacheManager中和CacheManager中,結合時,Zend的緩存只得到第一段(CacheManager中)

配置成功:

; CACHE CONFIG 
resources.cachemanager.memcached.frontend.name       = Core 
resources.cachemanager.memcached.frontend.options.automatic_serialization = On 
resources.cachemanager.memcached.backend.name        = Memcached 
resources.cachemanager.memcached.backend.options.servers.one.host   = 127.0.0.1 
resources.cachemanager.memcached.backend.options.servers.one.port   = 11211 
resources.cachemanager.memcached.backend.options.servers.one.persistent = On 

; session savehandler class 
resources.session.name = PHPGAME5_SESSION 
resources.session.saveHandler.class  = Zend_Session_SaveHandler_Cache 
resources.session.gc_maxlifetime   = 7200 
resources.session.cookie_domain   = ".game5.vn" 


; CACHE CONFIG 
resources.cachemanager.page.backend.options.public_dir = PUBLIC_PATH "/cached" 
resources.cachemanager.pagetag.backend.options.cache_dir = WEB_PATH "/data/cache/tags" 
resources.frontController.params.disableOutputBuffering = true 
resources.cachemanager.page.backend.options.disable_caching = false 
resources.cachemanager.page.backend.options.cache_directory_umask = 0775 
resources.cachemanager.page.backend.options.cache_file_umask = 0775