Как установить расширение PCNTL в Windows?

Я использую PHPUnit в Windows и пытаюсь установить PHPUnit через composer.json:

"phpunit/php-invoker": "*"

... с этой зависимостью, но я получаю эту ошибку:

phpunit / php-invoker 1.1.3 требует ext-pcntl * -> запрошенное расширение PHP pcntl отсутствует в вашей системе.

Как я могу установить это расширение?

3 ответа

Вы не можете установить расширение ext-pcntl в Windows. Согласно документации PHP:

В настоящее время этот модуль не будет работать на не-Unix платформах (Windows).

Если вы хотите установить PHPUnit, все, что вам нужно, это библиотека PHPUnit:

composer require phpunit/phpunit 4.*

Вам не нужен php-invoker для установки PUPUnit. Но если вам также нужна библиотека php-invoker, вам не повезло. Попробуйте использовать Vagrant или обычную виртуальную машину с дистрибутивами Linux, такими как Ubuntu, Debian или Mint.

Если вы работаете в Windows 10 без hometead, вы можете включить подсистему 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 и горизонт, которые не работают на окнах.

Это хорошее легкое решение

Вы можете рассмотреть возможность использования:--ignore-platform-reqs ext-pcntlпри установке через команды.

Дополнительная информация находится на Laravel Horizon, ext-pcntl и Windows .

Другие вопросы по тегам