安装 Laravel/horizon 踩过的坑

报错图:

安装laravel/horizon踩过的坑

问题原因

我们简单翻译一下提示信息就可以看到,整体说的是laravel/horizon依赖或者需要ext-pcntl拓展,我们可以在php.ini中修改并使用。这就是大概的意思,但是我去php.ini找了,没有找到。

解决办法
"config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true,
        "platform": {
            "ext-pcntl": "7.2",
            "ext-posix": "7.2"
        }
    },

可以看到,我们可以在composer.json文件里面的config里面加上platform配置,楼主运行了一下,完美解决。可是这是为什么呢?
从stackoverflow上找到了答案,该错误表明未安装PCNTL PHP扩展,并且Horizon需要提供此扩展的PHP环境。

PCNTL扩展为Unix风格的进程管理和信令提供了一个API。由于其固有的重点是仅在类似Unix或Linux的操作系统中可用的功能,因此此扩展不支持Windows,如文档中所述:

注意:此扩展名在Windows平台上不可用。

通过此API,Laravel Horizon使用PHP 7.1新增的异步信号处理功能来管理队列工作进程。因此,Horizon当前不支持Windows,Windows开发人员需要使用虚拟环境(例如Homestead)来安装和运行Horizon。

我们加上这两项就可以安装的原因就是我们设置忽略了版本匹配,如果有不对的地方,欢迎大家修改指正。

本作品采用《CC 协议》,转载必须注明作者和本文链接
空舟湖上~      ——Jouzeyu
Jouzeyu
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

为啥我 添加了没有用,还是报错。。。 :joy:

2年前 评论

完美解决问题! 谢谢分享。 PS: 还是习惯用Win :)

2年前 评论

我也碰到这个问题了

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!