4

我已根据文档成功安装和设置 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 时,horizo​​n 仪表板状态始终处于非活动状态

在此处输入图像描述

我正在使用 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",
    },

我已经搜索了很多问题,但没有运气,也尝试过composer update --ignore-platform-reqs但仍然无法正常工作。

任何人都请帮我在我的本地系统中运行 Laravel Horizo​​n

4

2 回答 2

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}

然后使用 , 重新加载 bash_profile

source ~/.bash_profile

然后我检查php版本

php -v

它将显示在下面:

PHP 7.3.0 (cli) (built: Dec 11 2018 01:01:47) (NTS) 版权所有 (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

然后我检查php -i | grep pcntl

它将显示:

pcntl 支持 => 启用

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

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

在此处输入图像描述

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

Applications/XAMPP/xamppfiles/etc/php.ini

从这个链接:https ://github.com/composer/composer/issues/7836#issuecomment-447287797

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

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

Horizo​​n 成功启动。

于 2019-02-07T08:32:58.403 回答
0

此错误与 laravel 和 Horizo​​n 无关。
pcntl_async_signals() 是一个链接的 php 方法。要启用 PCNTL,
如果您使用 DirectAdmin 作为控制面板,您应该使用 pcntl 编译 php,您可以使用以下说明:单击此处

于 2021-06-28T07:27:44.753 回答