当我在命令提示符下运行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.
我该如何解决这个错误?
使用--ignore-platform-reqs
选项运行composer并指定pcntl
和posix
composer install --ignore-platform-reqs
根据已接受的答案,但您可以将其添加到您的composer.json中,这样您就不必一直运行--ignore-platform-reqs
"config": {
"platform": {
"ext-pcntl": "7.2",
"ext-posix": "7.2"
}
}
Windows不支持pcntl
扩展。 (根据您的XAMPP信息)
请参阅laravel/horizon页面#131,#78上的这些github问题。
我建议你在你的Windows系统上使用Laravel Homestead,这很容易设置,将来可以避免许多类似的问题。
这样安装地平线:
composer require laravel/horizon --ignore-platform-reqs
然后运行
php artisan horizon:install
我安装了PHP 7.2而不是7.1,现在一切正常。似乎pcntl不存在于7.1中,但是它安装了php 7.2。
只需运行以下命令:
composer install --ignore-platform-reqs
注意:Windows不支持pcntl
如果你在没有家园的Windows 10上运行,你可以启用linux子系统并通过它运行视野。
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特使,这在Windows上不起作用。
这是一个很好的轻量级解决方案