我正在 Windows 中运行 PHPUnit 并尝试通过 composer.json 安装 PHPUnit:
"phpunit/php-invoker": "*"
...具有这种依赖性,但我收到此错误:
phpunit/php-invoker 1.1.3 需要 ext-pcntl * -> 您的系统中缺少请求的 PHP 扩展 pcntl。
如何安装此扩展?
您无法在 Windows 上安装 ext-pcntl 扩展。根据 PHP 文档:
目前该模块无法在非 Unix 平台上运行 (Windows)。
如果你想安装PHPUnit,你只需要PHPUnit库:
composer require phpunit/phpunit 4.*
您不需要 php-invoker 来安装 PHPUnit。但如果您还需要 php-invoker 库,那么您就不走运了。尝试使用 Vagrant 或带有 Linux 发行版的普通虚拟机,例如 Ubuntu、Debian 或 Linux Mint。
如果您在没有 Laravel Homestead 的 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
这也可以运行无法在 Windows 上运行的 Laravel Envoy 和 Horizon。
这是一个很好的轻量级解决方案。
仅此命令帮助我更新了作曲家
composer update --ignore-platform-reqs
这些
pcntl
和 posix
扩展适用于 UNIX
之类的系统