【问题标题】:Symfony / PHP7 APC -> APCuSymfony / PHP7 APC -> APCu
【发布时间】:2015-12-30 21:29:17
【问题描述】:

我对 PHP7 和 APCu 有疑问。安装后出现此错误:

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

APCu 已 100% 启用,我在 phpinfo(); 中看到它,当我尝试 apcu_fetch() 时,它可以工作。

如何在 Symfony 2.8 中使用 APCu?

【问题讨论】:

  • Opcache 已经可用,自 PHP 5.5 开始内置,可能想研究一下。
  • 是的,但是 APCu 更适合 Symfony。
  • 您是否在命令行或连接到 fpm 的客户端上收到此错误? Anway 只是提醒一下,如果你在命令行上得到这个错误,你可能会错过 php.ini 可以通过 fpm 和 cli 不同
  • APC 有很多 bug,尤其是在较新的 PHP 版本中。
  • 在 php.ini 我有这个 extension=apcu.so apc.enabled = 1 而在 phpinfo 我看到 APCU 像 Enabled.. 所以没关系。但是在命令行中我有这个错误: 致命错误:调用未定义的函数 Doctrine\Common\Cache\apc_fetch() 如果我尝试 apcu_fetch() 一切正常

标签: php symfony apc


【解决方案1】:

你可以更新 Doctrine,至少它的学说/缓存依赖 (>= 1.6) APCu 现在支持 :-)

【讨论】:

  • 已确认。只需将您拥有 apc 的所有配置更改为 apcu,例如 metadata_cache_driver: apcu
【解决方案2】:

这个答案已经过时了。正确答案是 François Breton 的答案。

在 PHP 7 中,您必须在 PHP 设置中添加一个附加模块:apc.so 这是一个能够向后兼容 apc for apcu 的模块。 这有点令人困惑......

请参阅http://php.net/manual/de/apcu.installation.php 了解更多信息。

如果您使用来自https://deb.sury.org/ (ondrej ppa) 的软件包,您可以通过apt-get install php-apcu-bc 安装它。

【讨论】:

  • 能否请您扩展您对如何添加模块的回答?
【解决方案3】:

如果你使用 ubuntu:

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php-apcu-bc

【讨论】:

  • 这个答案包含对我有用的解决方案。如果你把它充实一点就好了。谢谢。
【解决方案4】:

在 MacOS 上,使用 pecl 是一种单命令解决方案(在brew install php@7.1 之后):

pecl install apcu

正在下载 apcu-5.1.17.tgz ...
[...]
安装 '/usr/local/Cellar/php@7.1/7.1.27/pecl/20160303/apcu.so'
安装好:频道://pecl.php.net/apcu-5.1.17
在 php.ini 中启用扩展 apcu

【讨论】:

    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    • 2016-02-03
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多