2015-12-30 4 views
10

У меня проблема с PHP7 и APCu. После установки я получил эту ошибку:Symfony/PHP7 APC -> APCu

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

APCu на 100% включена, я вижу его в phpinfo(); И когда я пытаюсь apcu_fetch() это работает.

Как использовать APCu в Symfony 2.8?

+0

Opcache был доступен, построен в PHP начиная с версии 5.5, возможно, захочет изучить его. – Devon

+0

Да, но APCu лучше для Symfony. –

+0

Получаете ли вы эту ошибку в командной строке или на клиенте, который подключается к fpm? Anway просто напомнит, если вы получите эту ошибку в командной строке, вы можете пропустить php.ini может отличаться от fpm и cli – FZE

ответ

6

Этот ответ устарел. Правильный ответ - от Франсуа Бретона.

В PHP 7 вам необходимо добавить дополнительный модуль к вашей настройке PHP: apc.so Это модуль, который позволяет обратную совместимость с apc для apcu. Это своего рода путаница ...

См. http://php.net/manual/de/apcu.installation.php для получения дополнительной информации.

Если вы используете пакеты от https://deb.sury.org/ (ondrej ppa), вы можете установить его через apt-get install php-apcu-bc.

+0

Не могли бы вы расширить свой ответ в том, как добавить модуль? – k0pernikus

+0

Эта ссылка не содержит много информации. – Henry

16

Вы можете обновить доктрину, по крайней мере, его учение/кэш-зависимость (> = 1.6) APCu теперь поддерживается :-)

+3

Подтверждено. Просто измените все свои конфиги, где у вас есть apc для apcu, например 'metadata_cache_driver: apcu' – jrjohnson

+2

Это должен быть принятый ответ. –

1

Если вы используете убунт:

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

Этот ответ содержит решение, которое сработало для меня. Будьте бдительны, если вы немного сработаете. Спасибо. – Henry

Смежные вопросы