在 Windows 上安装 Laravel Horizo​​n 时出错

Posted

技术标签:

【中文标题】在 Windows 上安装 Laravel Horizo​​n 时出错【英文标题】:Error while installing Laravel Horizon on Windows 【发布时间】:2018-05-02 14:44:01 【问题描述】:

在 Windows 10 Home Basic 中安装 Laravel Horizo​​n 时出现以下错误。

我在 Xampp 上运行 php 7.1.9 版。

$ composer require laravel/horizon

您的要求无法解决为一组可安装的软件包。

问题 1:- laravel/horizo​​n v1.0.8 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。

【问题讨论】:

【参考方案1】:

转到composer.jsonconfig 下,添加此

"platform": 
        "ext-pcntl": "8.0",
        "ext-posix": "8.0"
 

因此,从下一次开始,您将不再需要使用 --ignore-platform-reqs

【讨论】:

【参考方案2】:

在 composer.json 和安装 Horizo​​n 运行命令中添加 "laravel/horizo​​n": "^4.0"

composer install --ignore-platform-reqs

要在 windows 中启动 Horizo​​n,您可以使用命令

php artisan queue:listen --queue=default,horizon

【讨论】:

【参考方案3】:

此错误表示未安装PCNTL PHP extension,并且 Horizo​​n 需要提供此扩展的 PHP 环境。

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

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

通过这个 API,Laravel Horizo​​n 使用 PHP 7.1 新增的 async signal handling 特性来管理队列工作进程。为此,Horizo​​n目前不支持Windows,Windows开发者需要使用Homestead等虚拟环境来安装和运行Horizo​​n。

在撰写本文时,这反映了 official position of the Laravel team 对此问题的看法。

【讨论】:

以上是关于在 Windows 上安装 Laravel Horizo​​n 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上快速安装并运行 Laravel 5.x

无法使用 composer 在 Windows 上安装 laravel,导致错误无法打开 Stream:Permission denied

通过composer和windows 10安装Laravel 5.6之后显示5.5.32 [重复]

如何:在 XAMPP 上安装 Memcache (Windows 7/8/10)

Laravel下载安装—使用Composer安装(Windows版)

安装php的lavavel框架的流程(亲测)