2

我做了一些愚蠢的事情,在一个valet use 7.1过程中,我按下了ctrl-C。为了让一切正常,我卸载了 valet+,做了 a composer global update, a brew updatevalet fixvalet install但我访问的每个站点仍然只是吐出“致命错误:调用 /Users/n8klatt/.composer/vendor 中的未定义函数 apcu_fetch() /weprovide/valet-plus/server.php 第 37 行"。关于如何让 Valet+ 再次工作的任何想法?

(中断调用后的初始错误valet use 7.1是“无法确定链接的 PHP”,我使用brew link --force php@5.65.6 以来一直在使用它进行补救。这让我可以继续进行,valet use 7.1但随后我的所有网站都开始抛出该 apcu_fetch 错误。)

4

2 回答 2

2

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

  • 调用未定义的函数 apcu_fetch() 很可能是由于 PHP-FPM 在与 CLI 不同的 PHP 版本上运行您的网络服务器所致。确保您的网络服务器运行的版本与您的 CLI 相同。一个简单的检查方法是在 server.php 文件中添加 PHPINFO 并检查结果。经常重启你的电脑会让旧的 PHP-FPM 实例死掉。

  • 无法确定链接的 PHP 是在 brew 未安装的原生 PHP 版本上运行时引发的错误。在这种情况下,valet-plus 找不到您的 PHP 安装的正确版本号并抛出此错误。

解决方案:

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

于 2018-04-26T15:50:22.793 回答
0

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

安装后添加extension="apcu.so"到 php56 .ini 文件中,它指向/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,它就可以工作了。

于 2018-10-13T03:58:23.590 回答