在 PHP 5.6 上使用 opcache 和 Symfony 2.5.*

Using opcache on PHP 5.6 with Symfony 2.5.*

我们希望 'migrate' 我们的项目使用 opcache,而不是 apc。我们该怎么做?

在我们的 VPS 上,我们安装了 php 5.6 opcache.enable => On,但是,我们的资产不会加载,并且 Doctrine 在日志文件中显示了几个错误。 (因为 Doctrine 还在尝试调用 ApcCache)

2015/02/16 15:22:21 [error] 22231#0: *29515 FastCGI sent in stderr: "PHP message: PHP Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() in snip_path/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php on line 40" while reading response header from upstream, client: snip_ip, server: snip_server, request: "GET /app_dev.php/js/57b7149_part_1_templates_2.js HTTP/1.1", upstream: "fastcgi://unix:/var/run/php_fpm_cynex.sock:", host: "snip_host", referrer: "snip_referer"

Doctrine 正在尝试使用 APC 缓存驱动程序,您的 VPS 中可能已将其关闭。

虽然我不熟悉 Doctrine,但问题似乎是 Doctrine 的行为就像安装了 APC,但显然没有

PHP Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch()

显然 Doctrine 想以 it's not designed to perform

的方式控制 Opcache

PHP's OpCache is not a full blown cache as APC It is a simply opcode cache.

您可能正在使用带有 doctine orm 的 apc,请检查 app/config/config.yml

doctrine:
   orm:
      ...
      metadata_cache_driver: apc
      ...

Refer

如果你正在使用它,你需要禁用它,清除缓存并尝试。

希望对您有所帮助。