因为APC中的一个错误,我不得不使用另一个缓存驱动器。我删除了APC并安装了xcache。config.php说你的配置看起来很好,可以运行Symfony。
我根据要求收到以下错误:
PHP Fatal error: Uncaught exception 'RuntimeException' with message 'Unable to use ApcClassLoader as APC is not enabled.' in /var/.../app/bootstrap.php.cache:1039
Stack trace:
#0 /var/.../web/app.php(11): Symfony\Component\ClassLoader\ApcClassLoader->__construct('sf2', Object(Composer\Autoload\ClassLoader))
#1 {main}
thrown in /var/...app/bootstrap.php.cache on line 1039
如何告诉Symfony使用xcache而不是APC?
遇到了同样的问题,这就是我的做法:
在第 12 行中替换
$loader = new ApcClassLoader('sf2', $loader);
跟
$loader = new XcacheClassLoader('sf2', $loader);
(并定义正确使用声明)
$loader = new ApcClassLoader('tcs_beta_prod', $loader);
替换为 $loader = new XcacheClassLoader('tcs_beta_prod', $loader);
并添加use SymfonyComponentClassLoaderXcacheClassLoader;
我有这个错误Fatal error: Class 'SymfonyComponentClassLoaderXcacheClassLoader' not found in C:xampphtdocsedtwebapp.php on line 11
.这是我的应用程序.php
<?php
use SymfonyComponentClassLoaderXcacheClassLoader;
use SymfonyComponentHttpFoundationRequest;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
// Use APC for autoloading to improve performance
// Change 'sf2' by the prefix you want in order to prevent key conflict with another application
$loader = new XcacheClassLoader('tcs_beta_prod', $loader);
$loader->register(true);
require_once __DIR__.'/../app/AppKernel.php';
require_once __DIR__.'/../app/AppCache.php';
$kernel = new AppKernel('prod', false);
$kernel->loadClassCache();
$kernel = new AppCache($kernel);
$request = Request::createFromGlobals();
Request::setTrustedProxies(array($request->server->get('REMOTE_ADDR'))); // per suggestion from Farid / Patrick to deal with ELB proxying
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
您没有为 XCache 定义 use 语句:
use SymfonyComponentClassLoaderXcacheClassLoader;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentClassLoaderXcacheClassLoader;