2017-03-02 103 views
0

我在我的xampp服務器中安裝並啓用了APCu,如:
從(PHP 7:http://pecl.php.net/package/APCu/5.1.3/windows)下載的文件php_apcu.dll並將其複製/粘貼到擴展目錄中。我也啓用它從php.ini:apc啓用,但symfony 3無法識別它

;;;;;;;;;;;;;;;;;;;;;; 
; Dynamic Extensions ; 
;;;;;;;;;;;;;;;;;;;;;; 

[...] 

extension=php_apcu.dll 

所以重新啓動Apache服務器和symfony服務器。
phpinfo()函數告訴我啓用了APC正確:
enter image description here

但symfony中無法識別它:
enter image description here

回答

0

我覺得你已經成功安裝APC但symfony中似乎以某種方式緩存結果本身。試試下面看到更新的狀態

取決於OS重新啓動Apache(如在Ubuntu/Debian的)

sudo service apache2 restart 

cd到symfony項目目錄以及清除高速緩存

bin/console cache:clear 

並重新加載頁面,您應該看到APC現在將變爲綠色(有希望)

實際的組件類,負責收集這些狀態是 Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector,當我瀏覽通過在瀏覽器中呈現的紅/綠盒子的時候,如果擴展加載及其例如收集啓用只檢查其沒有做什麼特別的東西功能看起來像:

/** 
    * {@inheritdoc} 
    */ 
    public function collect(Request $request, Response $response, \Exception $exception = null) 
    { 
     $this->data = array(
      'app_name' => $this->name, 
      'app_version' => $this->version, 
      'token' => $response->headers->get('X-Debug-Token'), 
      'symfony_version' => Kernel::VERSION, 
      'symfony_state' => 'unknown', 
      'name' => isset($this->kernel) ? $this->kernel->getName() : 'n/a', 
      'env' => isset($this->kernel) ? $this->kernel->getEnvironment() : 'n/a', 
      'debug' => isset($this->kernel) ? $this->kernel->isDebug() : 'n/a', 
      'php_version' => PHP_VERSION, 
      'xdebug_enabled' => extension_loaded('xdebug'), 
      'eaccel_enabled' => extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'), 
      'apc_enabled' => extension_loaded('apc') && ini_get('apc.enabled'), 
      'xcache_enabled' => extension_loaded('xcache') && ini_get('xcache.cacher'), 
      'wincache_enabled' => extension_loaded('wincache') && ini_get('wincache.ocenabled'), 
      'zend_opcache_enabled' => extension_loaded('Zend OPcache') && ini_get('opcache.enable'), 
      'bundles' => array(), 
      'sapi_name' => PHP_SAPI, 
     ); 

     if (isset($this->kernel)) { 
      foreach ($this->kernel->getBundles() as $name => $bundle) { 
       $this->data['bundles'][$name] = $bundle->getPath(); 
      } 

      $this->data['symfony_state'] = $this->determineSymfonyState(); 
     } 
    } 

有問題的行是

'apc_enabled' => extension_loaded('apc') && ini_get('apc.enabled'),

我有同樣的問題,我的緩存後框爲綠色:清除。但是如果你想使用apc緩存的話,還有更多,例如你必須專門爲某些組件啓用apc caching,例如教條和驗證