安装 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 协议》,转载必须注明作者和本文链接
这个6
为啥我 添加了没有用,还是报错。。。 :joy:
完美解决问题! 谢谢分享。 PS: 还是习惯用Win :)
我也碰到这个问题了