When I run composer install on command promp, there exist error like this :

  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.

How can I solve this error?


Run composer with the --ignore-platform-reqs option and specify pcntl and posix

composer install --ignore-platform-reqs
  • 70
Reply Report
      • 1
    • There exist error like this : Invalid argument ext-pcntl ext-posix. Use "composer require ext-pcntl ext-posix" instead to add packages to your composer.json.
      • 2
    • I just had the same issue - for some reason unknown to me, my php got unlinked (??) somehow. I found out when running php --ini to locate the loaded config that I wanted to check, and it said no config is loaded, none. At the end, all I needed was to relink PHP by brew link php71 --force and dependencies installed without a problem.
      • 1
    • This isn't fixing the problem, it's just ignoring the error. You still need the process-control extension enabled for horizon to work as it should. You should be upgrading your php installation

As per the accepted answer, but you can add this to your composer.json so that you don't have to run --ignore-platform-reqs all the time

"config": {
  "platform": {
    "ext-pcntl": "7.3",
    "ext-posix": "7.3"
  • 44
Reply Report

pcntl extension is not supported on Windows. (based on your XAMPP information)

Please see these github issues on laravel/horizon page #131, #78.

I suggest you use Laravel Homestead on your Windows system, It is easy to setup and will save you from many of the similar problems in future.

  • 9
Reply Report

If you are using docker based on a Unix image you can add it with the docker utility:

docker-php-ext-install pcntl

You can then confirm that this extension is installed and enabled inside of your container:

?> php -i | grep pcntl
pcntl support => enabled
  • 5
Reply Report

I have installed PHP 7.2 instead of 7.1 and everything works fine now. It appears that pcntl was not present in 7.1 but it's installed with php 7.2.

  • 2
Reply Report

If you're running on windows 10 without homestead you can enable the linux subsystem and run horizon through that.


Then install the requirements

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

This also can run laravel envoy too which doesn't work on windows.

It's a nice lightweight solution

  • 0
Reply Report

Warm tip !!!

This article is reproduced from Stack Exchange / Stack Overflow, please click

Trending Tags

Related Questions