58

当我composer install在命令提示符下运行时,存在如下错误:

  Problem 1
    - Installation request for laravel/horizon v1.1.0 -> satisfiable by laravel/horizon[v1.1.0].
    - laravel/horizon v1.1.0 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.

  To enable extensions, verify that they are enabled in your .ini files:
    - C:\xampp-7.1\php\php.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

我该如何解决这个错误?

4

12 回答 12

132

使用选项运行作曲家--ignore-platform-reqs并指定pcntlposix

composer install --ignore-platform-reqs
于 2018-02-02T08:02:37.217 回答
86

根据接受的答案,但您可以将其添加到您的 composer.json 中,这样您就不必一直--ignore-platform-reqs运行

"config": {
  "platform": {
    "ext-pcntl": "8.0",
    "ext-posix": "8.0"
  }
}
于 2018-10-12T11:53:27.223 回答
21

以这种方式安装地平线:

composer require laravel/horizon --ignore-platform-reqs

然后运行

php artisan horizon:install
于 2019-02-05T06:35:08.630 回答
12

如果您使用基于 Unix 映像的 docker,您可以使用docker 实用程序添加它:

docker-php-ext-install pcntl

然后,您可以确认此扩展程序已在您的容器内安装并启用:

?> php -i | grep pcntl
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
pcntl
pcntl support => enabled
于 2019-09-16T12:38:40.777 回答
12

pcntlWindows 不支持扩展名。(基于您的 XAMPP 信息)

请在laravel/horizo​​n页面#131#78上查看这些 github 问题。

我建议你在你的 Windows 系统上使用Laravel Homestead,它很容易设置,并且可以让你在未来避免许多类似的问题。

于 2018-02-02T07:20:18.320 回答
5

只需运行以下命令:

composer install --ignore-platform-reqs

注意: pcntl 在 Windows 上不受支持

于 2019-03-14T18:01:16.497 回答
1

我有一些问题,composer install --ignore-platform-reqs对我有用

谢谢

于 2020-03-27T10:41:16.507 回答
1

我安装了 PHP 7.2 而不是 7.1,现在一切正常。pcntl 似乎在 7.1 中不存在,但它与 php 7.2 一起安装。

于 2018-08-09T08:43:08.313 回答
0

添加这一行

RUN docker-php-ext-install pcntl

RUN composer install

于 2022-01-08T18:54:02.470 回答
0

如果您在没有 homestead 的 Windows 10 上运行,您可以启用 linux 子系统并通过它运行 Horizo​​n。

https://www.windowscentral.com/how-install-bash-shell-command-line-windows-10

然后安装需求

sudo apt install php7.2-fpm php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-cli php7.2-zip php7.2-mysql

这也可以运行在 Windows 上不起作用的 laravel envoy。

这是一个不错的轻量级解决方案

于 2018-08-20T09:10:26.053 回答
0

简单地忽略依赖的答案是错误的。这不会为您提供 Horizo​​n 的工作版本或您可能希望安装的任何软件包。必须安装依赖项。

安装方法示例:

APK

sudo add php8-pcntl php8-pcntl

百胜

sudo yum install -y php-pcntl php-posix
于 2021-10-26T20:48:27.920 回答
0
$composer install --ignore-platform-reqs ext-pcntl
于 2019-11-16T05:13:59.567 回答