使用快捷键win+r打开运行输入control然后确定进入控制面板,点击程序和功能进入。
进入程序和功能后点击启用或关闭windows功能。
勾选Hyper-V然后确定并重启。

任务管理器->性能->CPU,确认虚拟化已启用。

管理员模式打开CMD,bcdedit /set hypervisorlaunchtype Auto,然后重启

官方文档中的代码实测有误

return [
    'bind'    =>    [
        'UserLogin' => 'app\event\UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
];

实际表现应该是

return [
    'bind'    =>    [
        'ul' => 'UserLogin',
        // 更多事件绑定
    ],
    'listen'  =>    [
        'UserLogin'    =>    ['app\listener\UserLogin'],
        // 更多事件监听
    ],
];

这样使用

Event::trigger('UserLogin');

或者

Event::trigger('ul');

或者

event('UserLogin');

或者

event('ul');

都能够生效,也就是说,event.php 中的 bind 配置实质上起到的是一个别名的功能,直接不配置也不会影响使用

- 阅读剩余部分 -

    SELECT
*,
ROUND(
    6378.138 * 2 * ASIN(
        SQRT(
            POW(
                SIN((
                        37.921289 * PI()/ 180-latitude * PI()/ 180 
                        )/ 2 
                ),
                2 
                )+ COS( 37.921289 * PI()/ 180 )* COS( latitude * PI()/ 180 )* POW(
                SIN((
                        112.648139 * PI()/ 180-longitude * PI()/ 180 
                        )/ 2 
                ),
                2 
            )))* 1000 
) AS distance 
FROM t_store ORDER BY distance ASC

在确定php超时设置正确的情况下,依然报错
在httpd.conf中添加配置如下

<IfModule fcgid_module>
FcgidIOTimeout 3600
FcgidConnectTimeout 3600
FcgidBusyScanInterval 3600
FcgidBusyTimeout 3600
FcgidErrorScanInterval 3600
FcgidIdleScanInterval 3600
FcgidIdleTimeout 3600
FcgidProcessLifeTime 3600
FcgidZombieScanInterval 3600
</IfModule>