Beim Ausführen von composer install
an der Eingabeaufforderung gibt es einen Fehler wie folgt:
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.
Wie kann ich diesen Fehler beheben?
Führen Sie composer mit der Option --ignore-platform-reqs
aus und geben Sie pcntl
und posix
composer install --ignore-platform-reqs ext-pcntl ext-posix
Wie in der akzeptierten Antwort, Sie können dies jedoch zu Ihrem composer.json hinzufügen, sodass Sie nicht ständig --ignore-platform-reqs
ausführen müssen
"config": {
"platform": {
"ext-pcntl": "7.2",
"ext-posix": "7.2"
}
}
Die Erweiterung pcntl
ist unter Windows nicht unterstützt. (basierend auf Ihren XAMPP-Informationen)
Diese Github-Ausgaben finden Sie unter laravel/horizon page # 131 , # 78 .
Ich schlage vor, dass Sie Laravel Homestead auf Ihrem Windows-System verwenden. Das Setup ist einfach und wird Sie in Zukunft vor vielen ähnlichen Problemen bewahren.
Ich habe PHP 7.2 anstelle von 7.1 installiert und alles funktioniert jetzt einwandfrei. Es scheint, dass pcntl in 7.1 nicht vorhanden war, aber mit PHP 7.2 installiert wurde.
Führen Sie einfach Folgendes aus:
composer install --ignore-platform-reqs
Hinweis: pcntl wird unter Windows nicht unterstützt
installieren Sie Horizont auf diese Weise:
composer require laravel/horizon --ignore-platform-reqs
dann renne
php artisan horizon:install
Wenn Sie unter Windows 10 ohne Homestead laufen, können Sie das Linux-Subsystem aktivieren und dadurch einen Horizont ausführen.
https://www.windowscentral.com/how-install-bash-Shell-command-line-windows-10
Dann installieren Sie die Anforderungen
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
Dies kann auch ein Laravel-Beauftragter sein, der an Fenstern nicht funktioniert.
Es ist eine schöne, leichte Lösung
Wenn Sie Docker verwenden, der auf einem Unix-Image basiert, können Sie es mit dem Docker-Dienstprogramm hinzufügen :
docker-php-ext-install pcntl
Sie können dann bestätigen, dass diese Erweiterung in Ihrem Container installiert und aktiviert ist:
?> php -i | grep pcntl
/usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini,
pcntl
pcntl support => enabled