コマンドプロンプトで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.
このエラーを解決するにはどうすればよいですか?
composerを--ignore-platform-reqs
オプションで実行し、pcntl
およびposix
を指定します
composer install --ignore-platform-reqs
受け入れられた答えによると、これをcomposer.jsonに追加して、常に--ignore-platform-reqs
を実行する必要がないようにすることができます。
"config": {
"platform": {
"ext-pcntl": "7.2",
"ext-posix": "7.2"
}
}
pcntl
拡張子はWindowsではサポートされていません。 (XAMPP情報に基づいて)
laravel/horizon ページ #131 、 #78 でこれらのgithubの問題を参照してください。
Windowsシステムで Laravel Homestead を使用することをお勧めします。セットアップは簡単で、将来的には同様の問題の多くからあなたを救うでしょう。
このように地平線をインストールします:
composer require laravel/horizon --ignore-platform-reqs
その後、実行します
php artisan horizon:install
7.1ではなくPHP 7.2をインストールしましたが、すべて正常に動作します。 pcntlは7.1には存在しなかったようですが、php 7.2でインストールされています。
次を実行してください:
composer install --ignore-platform-reqs
注:pcntlはWindowsではサポートされていません
Homesteadを使用せずにWindows 10で実行している場合は、Linuxサブシステムを有効にして、それを使用して水平線を実行できます。
https://www.windowscentral.com/how-install-bash-Shell-command-line-windows-1
次に、要件をインストールします
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 envoyも実行できますが、これはWindowsでは機能しません。
それは素敵な軽量ソリューションです
Unixイメージに基づいてdockerを使用している場合は、 dockerユーティリティ で追加できます。
docker-php-ext-install pcntl
その後、この拡張機能がコンテナ内にインストールされ、有効になっていることを確認できます。
?> php -i | grep pcntl
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
pcntl
pcntl support => enabled