【问题标题】:apc enabled but symfony 3 not recognized itapc 启用但 symfony 3 无法识别
【发布时间】:2017-03-02 21:48:17
【问题描述】:

我在我的 xampp 服务器中安装并启用了 APCu,例如:
从 (PHP 7: http://pecl.php.net/package/APCu/5.1.3/windows) 下载文件 php_apcu.dll 并将其复制/粘贴到扩展目录中。我也从 php.ini 启用了它:

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

[...]

extension=php_apcu.dll

所以重启 apache 服务器和 symfony 服务器。
phpinfo() 显示 apc 已正确启用:

但 symfony 无法识别它:

【问题讨论】:

    标签: xampp symfony apc apcu


    【解决方案1】:

    我认为你已经成功设置了APC,但 symfony 似乎以某种方式缓存了结果本身。尝试关注查看更新状态

    取决于操作系统重启 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 缓存,还有更多内容,例如,您必须专门为某些组件启用,例如原则和验证

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2016-11-16
      • 2023-03-24
      • 2011-06-13
      • 2011-07-28
      • 2016-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      相关资源
      最近更新 更多