apc启用,但symfony 3无法识别它
问题描述:
我在我的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
答
我觉得你已经成功安装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,例如教条和验证