I am running PHPUnit in Windows and trying to install PHPUnit via composer.json:
"phpunit/php-invoker": "*"
...with this dependency, but I am getting this error:
phpunit/php-invoker 1.1.3 requires ext-pcntl * -> the requested PHP extension pcntl is missing from your system.
How can I install this extenstion?
You can't install ext-pcntl extension on Windows. Accordingly to the PHP documentation:
Currently, this module will not function on non-Unix platforms (Windows).
If you want to install PHPUnit all you need is the PHPUnit library:
composer require phpunit/phpunit 4.*
You don't need php-invoker to install PUPUnit. But if you also need the php-invoker library you are out of luck. Try using Vagrant or a plain VM with Linux distributions like Ubuntu, Debian or Mint.
If you're running on windows 10 without homestead you can enable the linux subsystem and run your code through that.
https://www.windowscentral.com/how-install-bash-shell-command-line-windows-10
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 and horizon too which don't work on windows.
It's a nice lightweight solution
来源:https://stackoverflow.com/questions/30045085/how-to-install-pcntl-extension-in-windows