Laravel Horizo​​n 抛出错误:调用未定义的函数 Laravel\Horizo​​n\Console\pcntl_async_signals()

Sau*_*try 6 php xampp laravel laravel-horizon laravel-5.7

我已经按照文档成功安装并设置了 laravel-horizo​​n

当我运行这个命令时php artisan horizon

它抛出以下错误:

Symfony\Component\Debug\Exception\FatalThrowableError :调用未定义函数 Laravel\Horizo​​n\Console\pcntl_async_signals()

在此输入图像描述

当我打开http://127.0.0.1:8000/horizo​​n/ dashboard 时,地平线仪表板状态始终处于非活动状态

在此输入图像描述

我使用 XAMPP ,PHP 版本 7.3.0 ,Laravel 版本 5.7

我已关注此链接:https://github.com/laravel/horizo​​n /issues/154#issuecomment-366712260

composer require ext-pcntl ext-posix

这是作曲家:

"require": {
        "php": "^7.1.3",
        "ext-pcntl": "^7.2",
        "ext-posix": "^7.2",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.7.*",
        "laravel/horizon": "^2.0",
        "laravel/socialite": "^4.0",
        "laravel/tinker": "^1.0",
        "predis/predis": "^1.1",
    },
Run Code Online (Sandbox Code Playgroud)

我搜索了很多问题,但没有运气,也尝试过composer update --ignore-platform-reqs但仍然不起作用。

有人请帮助我在本地系统中运行 Laravel Horizo​​n

Sau*_*try 2

经过搜索 2 小时终于解决了错误:

由于我使用 XAMPP ,我必须PATHbash_profile文件中设置才能使用 XAMPP 的 php 7.3.0

所以我添加了这个

sudo nano ~/.bash_profile

export XAMPP_HOME=/Applications/XAMPP
export PATH=${XAMPP_HOME}/bin:${PATH}
Run Code Online (Sandbox Code Playgroud)

然后使用重新加载 bash_profile,

source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

然后我检查 php 版本

php -v
Run Code Online (Sandbox Code Playgroud)

它将显示如下:

PHP 7.3.0 (cli)(构建:2018 年 12 月 11 日 01:01:47)( NTS ) 版权所有 (c) 1997-2018 PHP Group Zend Engine v3.3.0-dev,版权所有 (c) 1998-2018 Zend Technologies

然后我检查php -i | grep pcntl

它将显示:

pcntl 支持 => 启用

所以我尝试跑步php artisan horizon,启用 pcntl 后再次出现相同的错误

我尝试运行composer dump-autoload,所以出现新错误

在此输入图像描述

pcre.jit=0所以为了解决这个错误,我在php.ini文件中添加了

Applications/XAMPP/xamppfiles/etc/php.ini
Run Code Online (Sandbox Code Playgroud)

通过此链接: https: //github.com/composer/composer/issues/7836#issuecomment-447287797

最后从 XAMPP 重新启动 apache 服务器,然后运行composer dump-autoload

然后最后一次运行php artisan horizon给了我更干净的输出,例如

地平线启动成功。