Laravel Valet +所有网站都会产生"未定义的函数apcu_fetch()"

时间:2018-04-19 22:43:00

标签: laravel-valet

我做了一些愚蠢的事情,在valet use 7.1进程的中间,我按了ctrl-C。为了让一切工作从那时起我卸载了代客+,做了composer global updatebrew updatevalet fixvalet install但我访问的每个网站都吐出来了#34;致命错误:在第37行" /Users/n8klatt/.composer/vendor/weprovide/valet-plus/server.php中调用未定义函数apcu_fetch()。关于如何让Valet +再次工作的任何想法?

(中断valet use 7.1调用后的初始错误是"无法确定链接的PHP",我用brew link --force php@5.6补救,因为5.6是我一直在使用的。允许我继续valet use 7.1,但后来我的所有网站都开始抛出apcu_fetch错误。)

2 个答案:

答案 0 :(得分:0)

所以你在这里遇到了两个问题:

  • 调用未定义的函数apcu_fetch()很可能是因为PHP-FPM在不同的PHP版本上运行您的Web服务器作为CLI。确保您的Web服务器运行的版本与CLI相同。很容易检查这是在server.php文件中添加PHPINFO并检查结果。通常重新启动PC会导致旧的PHP-FPM实例死亡。

  • 无法确定链接PHP是在您没有通过brew安装的本机PHP版本上运行时引发的错误。在这种情况下,valet-plus无法找到PHP安装的正确版本号并引发此错误。

解决方案:

希望有帮助,如果不给我评论。

答案 1 :(得分:0)

我对php56有同样的问题。但是在用brew重新安装PHP56之后,我没有使用代客服务,而是添加了pear和pecl模块。我用pecl channel-update pecl.php.netpecl install apcu-4.0.11安装了apcu(无法直接安装apc)。

该安装后,在php56 .ini文件中添加了extension="apcu.so",该文件指向/usr/local/Cellar/php@5.6/5.6.38/lib/php/20131226/apcu.so,该图像实际上不存在,因为该图像是由PECL安装的,因此我不得不将php56 .ini更改为apcu扩展名以匹配图像文件所在的extension=/usr/local/lib/php/pecl/20131226/apcu.so,然后重新启动apache即可。