我该如何解决"laravel/horizon v1.1.0 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system"?
How can I solve "laravel/horizon v1.1.0 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system"?
当我在命令提示符下运行 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.
如何解决这个错误?
pcntl
扩展 在 Windows 上不受支持。 (根据您的 XAMPP 信息)
请在 laravel/horizon page #131, #78 上查看这些 github 问题。
我建议你在你的 Windows 系统上使用 Laravel Homestead,它很容易设置并且可以避免你以后遇到许多类似的问题。
运行 composer 使用 --ignore-platform-reqs
选项并指定 pcntl
和 posix
composer install --ignore-platform-reqs
我安装了 PHP 7.2 而不是 7.1,现在一切正常。 pcntl 似乎在 7.1 中不存在,但它与 php 7.2.
一起安装
如果您 运行 在 windows 10 上 homestead,您可以启用 linux 子系统和 运行 horizon 通过那。
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
这也可以 运行 laravel envoy 但在 windows 上不起作用。
这是一个不错的轻量级解决方案
根据已接受的答案,但您可以将其添加到您的 composer.json 中,这样您就不必一直 运行 --ignore-platform-reqs
"config": {
"platform": {
"ext-pcntl": "8.0",
"ext-posix": "8.0"
}
}
以这种方式安装 horizon:
composer require laravel/horizon --ignore-platform-reqs
然后 运行
php artisan horizon:install
只需 运行 以下内容:
composer install --ignore-platform-reqs
注意:Windows
不支持 pcntl
如果您使用的是基于 Unix 映像的 docker,您可以使用 docker utility:
添加它
docker-php-ext-install pcntl
然后您可以确认此扩展程序已安装并在您的容器内启用:
?> php -i | grep pcntl
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
pcntl
pcntl support => enabled
$composer install --ignore-platform-reqs ext-pcntl
我遇到了一些问题,composer install --ignore-platform-reqs
适合我
谢谢
简单地忽略依赖关系的答案是错误的。这不会为您提供 Horizon 的工作版本或您可能希望安装的任何软件包。必须安装依赖项。
安装示例:
APK
sudo add php8-pcntl php8-pcntl
百胜
sudo yum install -y php-pcntl php-posix
添加这一行
RUN docker-php-ext-install pcntl
之前
RUN composer install
这对我有用
composer require laravel/horizon --ignore-platform-reqs
希望对您有所帮助。
当我在命令提示符下运行 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.
如何解决这个错误?
pcntl
扩展 在 Windows 上不受支持。 (根据您的 XAMPP 信息)
请在 laravel/horizon page #131, #78 上查看这些 github 问题。
我建议你在你的 Windows 系统上使用 Laravel Homestead,它很容易设置并且可以避免你以后遇到许多类似的问题。
运行 composer 使用 --ignore-platform-reqs
选项并指定 pcntl
和 posix
composer install --ignore-platform-reqs
我安装了 PHP 7.2 而不是 7.1,现在一切正常。 pcntl 似乎在 7.1 中不存在,但它与 php 7.2.
一起安装如果您 运行 在 windows 10 上 homestead,您可以启用 linux 子系统和 运行 horizon 通过那。
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
这也可以 运行 laravel envoy 但在 windows 上不起作用。
这是一个不错的轻量级解决方案
根据已接受的答案,但您可以将其添加到您的 composer.json 中,这样您就不必一直 运行 --ignore-platform-reqs
"config": {
"platform": {
"ext-pcntl": "8.0",
"ext-posix": "8.0"
}
}
以这种方式安装 horizon:
composer require laravel/horizon --ignore-platform-reqs
然后 运行
php artisan horizon:install
只需 运行 以下内容:
composer install --ignore-platform-reqs
注意:Windows
不支持 pcntl如果您使用的是基于 Unix 映像的 docker,您可以使用 docker utility:
添加它docker-php-ext-install pcntl
然后您可以确认此扩展程序已安装并在您的容器内启用:
?> php -i | grep pcntl
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
pcntl
pcntl support => enabled
$composer install --ignore-platform-reqs ext-pcntl
我遇到了一些问题,composer install --ignore-platform-reqs
适合我
谢谢
简单地忽略依赖关系的答案是错误的。这不会为您提供 Horizon 的工作版本或您可能希望安装的任何软件包。必须安装依赖项。
安装示例:
APK
sudo add php8-pcntl php8-pcntl
百胜
sudo yum install -y php-pcntl php-posix
添加这一行
RUN docker-php-ext-install pcntl
之前
RUN composer install
这对我有用
composer require laravel/horizon --ignore-platform-reqs
希望对您有所帮助。