wokerman启动了没有显示监听端口

744917766

在php laravel中使用workerman,启动的时候没有正常显示监听端口,且不能使用

这是laravel框架中使用:

D:\phpStudy\PHPTutorial\WWW\laravel-t\caige-svn>php artisan Workerman start --daemonize
[1A
[K-----------------------[47;30m WORKERMAN [0m-----------------------------
[0mWorkerman version:3.5.4          PHP version:7.2.1
------------------------[47;30m WORKERS [0m-------------------------------
worker---------------------listen---------------------processes-----------------------status
^C

不在laravel框架(在原生php)中使用

D:\phpStudy\PHPTutorial\WWW>php wm.php start
----------------------------------------- WORKERMAN ------------------------------------------
--------------Workerman version:3.5.1  --------------------- PHP version:7.2.1----------
------------------------------------------- WORKERS ----------------------------------------------
worker --------------------- listen --------------------- processes --------------------- status
none------ websocket://0.0.0.0:2000 -------- 1  --------------- 
----------------------------------------------------------------------------------------------------------

workerman启动 laravel框架中使用没有在原生中那样出现监听的对应端口。
“none----------- websocket://0.0.0.0:2000 ------------- 1 ----------------------------- ” 这一行

6135 2 0
2个回答

克罗地鸦

我也有这个问题,请问楼主现在搞定了吗?

  • 暂无评论
xyzj91

为了回答你这个问题我特地注册了个账号.
之前这个问题也困扰了我一段时间,后面放弃了.不过找到问题是因为在windows下面getStartFilesForWindows()这个函数影响的:

foreach($argv as $file)
{
    if(_is_file_($file))//此处会判断是否是文件,是文件的情况下才会加入数组中,laravel下面的命令肯定不是文件,所以此处$files就为空了
    {
        $files = $file;
    }
}

$files为空在windows下就不会fork进程出来了(linux下是不会有这个问题的)
网上提供的教程都是linux下运行的,所以不会有这个问题,在windows上集成就会出现你这个问题!!!!
 
解决方法:
改workerman的代码就行了:
将Worker.php中1335行的getStartFilesForWindows函数改成如下写法即可:

  public static function getStartFilesForWindows() {
        global $argv;
        $files = array();
_//        foreach($argv as $file)
//        {
//            if(is_file($file))
//            {
//                $files = $file;
//            }
//        }
        _$file = $argv;
        $files = $file;
        return $files;
    }
  • 暂无评论
年代过于久远,无法发表回答
🔝