在 Windows 10 Home Basic 中,安装 Laravel Horizon 时出现以下错误。
我在 Xampp 上运行 PHP 7.1.9 版。
$ composer require laravel/horizon
您的要求无法解决为一组可安装的软件包。
问题 1: - laravel/horizon v1.0.8 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。
在 Windows 10 Home Basic 中,安装 Laravel Horizon 时出现以下错误。
我在 Xampp 上运行 PHP 7.1.9 版。
$ composer require laravel/horizon
您的要求无法解决为一组可安装的软件包。
问题 1: - laravel/horizon v1.0.8 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。
此错误表示未安装PCNTL PHP 扩展,并且 Horizon 需要提供此扩展的 PHP 环境。
PCNTL 扩展为 Unix 风格的进程管理和信令提供了一个 API。由于其固有的专注于仅在类 Unix 或类 Linux 操作系统中可用的功能,因此此扩展不支持 Windows,如文档中所述:
注意:此扩展在 Windows 平台上不可用。
通过这个 API,Laravel Horizon 使用 PHP 7.1 新增的异步信号处理特性来管理队列工作进程。为此,Horizon 目前不支持 Windows,Windows 开发者需要使用Homestead等虚拟环境来安装和运行 Horizon。
在撰写本文时,这反映了Laravel 团队对此问题的官方立场。
在 composer.json 和安装 Horizon 运行命令中添加 "laravel/horizon": "^4.0"
composer install --ignore-platform-reqs
要在 Windows 中启动 Horizon,您可以使用命令
php artisan queue:listen --queue=default,horizon
转到composer.json
和下config
,添加这个
"platform": {
"ext-pcntl": "8.0",
"ext-posix": "8.0"
}
所以,从下一次开始,你就不用再使用--ignore-platform-reqs
了。