Doctrine undefined函数apc_fetch

时间:2012-10-30 15:58:04

标签: codeigniter doctrine doctrine-orm doctrine-odm

我正在使用this tutorial,它提供了有关如何设置CodeIgniter和Doctrine的详细说明。我正在使用CodeIgniter 2.1.0和Doctrine 2.2.1,但是我收到了这个错误:

  

致命错误:在第52行的/Applications/XAMPP/xamppfiles/htdocs/emma_watson_shrine/application/libraries/Doctrine/Common/Cache/ApcCache.php中调用未定义的函数Doctrine\Common\Cache\apc_fetch()

你可以帮帮我吗?

6 个答案:

答案 0 :(得分:12)

您需要为PHP启用APC扩展。

关注this指南。

或者,你可以使用不同的缓存驱动程序,比如memcache,并根据它更改Doctrine配置。

检查doctrine documentation是否有备用缓存驱动程序。也许最简单的解决方案是在开发中使用 ArrayCache

答案 1 :(得分:4)

如果您没有安装APC并且只想运行它,那么在第6行的doctrine-cli.php中,更改模式:

define('ENVIRONMENT', 'production');

define('ENVIRONMENT', 'development');

打开Doctrine.php文件,在第36~43行,你会明白为什么!

答案 2 :(得分:3)

因为不再使用php 5.5 apc。你应该安装apcu。

E.g。

apt install php5.6-apcu

更多信息:

http://php.net/manual/en/opcache.installation.php

对于那些在php 7上有一个向后兼容模块:

apt-get install php7.0-apcu
apt-get install php7.0-apcu-bc

此外,您可能需要添加此存储库:

apt-add-repository ppa:ondrej/php
apt-get update

答案 3 :(得分:1)

您需要安装apc扩展才能使用缓存。所以只需下载扩展并安装即可。

这个将帮助您在apache上安装APC扩展。

http://kvcodes.com/2014/06/solution-call-undefined-function-apc_fetch/

答案 4 :(得分:0)

对于在Mac上获取此功能的任何人,只需使用Homebrew安装apcu

brew install php56-apcu

(并根据需要启用扩展程序)。

答案 5 :(得分:0)

在OSX上,我必须运行:

pecl channel-update pecl.php.net
pecl install apcu-4.0.11

为PHP 5.6安装

https://getgrav.org/blog/macos-mojave-apache-mysql-vhost-apc