【问题标题】:Symfony 2 apc caching errorSymfony 2 apc缓存错误
【发布时间】:2015-01-08 08:47:24
【问题描述】:

我正在将我的 Symfony 2 项目移动到共享主机的生产环境中。当我执行文件 app.php 我得到错误

 Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() in /data/web/virtuals/53627/virtual/www/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php on line 40

我联系了托管服务提供商,被告知他们不再使用 APC 缓存,这似乎已经过时了,所以他们更进一步。

有什么方法可以省略使用 Symfony + Doctrine 的 APC 缓存?

谢谢

【问题讨论】:

    标签: php symfony caching doctrine apc


    【解决方案1】:

    查看您的app/config.yml:Doctrine 缓存驱动程序非常可配置,as the doc states,您可以将它们设置为array。看起来很像这样:

    doctrine:
        orm:
            auto_mapping: true
            metadata_cache_driver: array
            query_cache_driver: array
            result_cache_driver: array
    

    还请注意,这基本上是默认配置,因此必须已覆盖默认设置。

    【讨论】:

    • 谢谢kix,即使我使用这个sn-p,我仍然会遇到同样的错误。我其实不明白为什么。即使使用非常默认的 config.yml,情况也是一样的。
    • 我刚刚通过修改app.php解决了这种情况,行$kernel = new AppKernel('prod', false); TO $kernel = new AppKernel('prod', true);。我不知道哪里有错误设置为默认值。如果有人遇到同样的麻烦,请留下此评论。
    • 如果您正在生产,请执行php app/console console:clear --env=prod。顺便说一句,更改为 array 很可能会对性能产生负面影响。
    • new AppKernel('prod', true) => 表示带有 debug 的 prod。我猜在调试中你没有使用缓存,这就是你不再有任何问题的原因。运行 phpinfo 时看到 apc 吗?在 phpinfo / "Additional .ini files parsed" 部分,我有 "/etc/php5/apache2/conf.d/20-apcu.ini"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    相关资源
    最近更新 更多