Laravel Valet+ все сайты дают неопределенную функцию apcu_fetch()

Я сделал глупость и посреди процесса valet use 7.1 нажал ctrl-C. Пытаясь заставить все работать с тех пор, я удалил valet+, сделал composer global update, brew update, valet fix и valet install, но все же каждый сайт, который я посещаю, просто выдает «Неустранимая ошибка: вызов неопределенной функции apcu_fetch() в /Users/n8klatt/ .composer/vendor/weprovide/valet-plus/server.php в строке 37". Есть идеи, как снова заставить Valet+ работать?

(Первоначальная ошибка после прерывания вызова valet use 7.1 была «Невозможно определить связанный PHP», которую я исправил с помощью brew link --force [email protected], поскольку я использовал версию 5.6. Это позволило мне продолжить работу с valet use 7.1, но затем все мои сайты начали выдавать этот apcu_fetch. ошибка.)


person nklatt    schedule 19.04.2018    source источник


Ответы (2)


Итак, у вас здесь 2 проблемы:

  • Вызов неопределенной функции apcu_fetch(), скорее всего, вызван тем, что PHP-FPM запускает ваш веб-сервер на другой версии PHP в качестве вашего CLI. Убедитесь, что ваш веб-сервер работает с той же версией, что и ваш CLI. Легко было проверить это, добавив PHPINFO в файл server.php и проверив результат. Часто перезагрузка вашего ПК приводит к тому, что старые экземпляры PHP-FPM умирают.

  • Невозможно определить связанный PHP — это ошибка, возникающая, когда вы используете нативную версию PHP, которая не установлена ​​brew. В этом случае valet-plus не может найти правильный номер версии вашей установки PHP и выдает эту ошибку.

Решения:

  • Убедитесь, что APCu установлен правильно, как указано в weprovide/valet-plus#133.
  • Убедитесь, что ваша установка PHP не является ошибочной, как указано в weprovide/valet-plus. #127

Надеюсь, что это поможет, если не дать мне комментарий.

person Neodork    schedule 26.04.2018

У меня была такая же проблема с php56. Но я не использую камердинера после того, как переустановил PHP56 с помощью brew, и он добавил модуль pear и pecl. Я установил apcu (не смог установить apc напрямую) с помощью pecl channel-update pecl.php.net и pecl install apcu-4.0.11.

После этой установки добавлено extension="apcu.so" в файле .ini php56, который указывает на /usr/local/Cellar/[email protected]/5.6.38/lib/php/20131226/apcu.so, где изображение на самом деле не существует, потому что оно было установлено PECL, поэтому мне пришлось изменить php56 .ini на расширение apcu, чтобы оно соответствовало extension=/usr/local/lib/php/pecl/20131226/apcu.so, где файл изображения находится на самом деле. , а затем перезапустите апач, и он работает.

person KeitelDOG    schedule 13.10.2018