12
votes

I have issue with PHP7 and APCu. After installation I got this error:

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

APCu is 100% enabled, I see it in the phpinfo(); And when I try apcu_fetch() it works.

How to use APCu in Symfony 2.8?

4
Opcache has been available, built into PHP since 5.5, might want to look into it. - Devon
Yes, but APCu is better for Symfony. - user3703456
Do you get this error on command line or on the client which connects to fpm ? Anway just reminding, if you get this error on commandline, you may miss php.ini can be different by fpm and cli - FZE
APC is very buggy especially in newer PHP versions. - René Höhle
In php.ini I have this extension=apcu.so apc.enabled = 1 And in phpinfo I see APCU like Enabled.. So it's OK. But in command line I have this error: Fatal error: Call to undefined function Doctrine\Common\Cache\apc_fetch() If I try apcu_fetch() all works fine - user3703456

4 Answers

20
votes

You can update Doctrine, at least its doctrine/cache dependency (>= 1.6) APCu now supported :-)

9
votes

This answer is obsolet. The correct answer is the one from François Breton.

In PHP 7 you have to add an additional module to your PHP setup: apc.so This is a module that enables backward compability to apc for apcu. This is kind of confusing...

See http://php.net/manual/de/apcu.installation.php for more info.

If you are using packages from https://deb.sury.org/ (ondrej ppa), you can install it via apt-get install php-apcu-bc.

3
votes

If you use ubuntu:

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

On MacOS, using pecl is a one-command solution (after a brew install [email protected]) :

pecl install apcu

downloading apcu-5.1.17.tgz ...
[...]
Installing '/usr/local/Cellar/[email protected]/7.1.27/pecl/20160303/apcu.so'
install ok: channel://pecl.php.net/apcu-5.1.17
Extension apcu enabled in php.ini