Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker

公司网页交互需要用到websocket,找了一圈资料,最后和师兄讨论了一下,师兄推荐了gatewayworker,看了一下文档挺符合现在的即时通讯的需求,于是,啥也别说了,开干了,哈哈哈哈。

1.了解一个东西,先从demo开始,刚开始下的demo,在本地运行服务,我本地是Windows,双击 start_for_win.bat 文件运行(Linux下启动start.php,命令为:php start.php start),如果有报错,说明本地PHP没有添加环境变量,在本地添加环境变量后,再双击运行

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第1张图片

1.1本地添加环境变量得方法:

找到PHP.exe的目录,复制目录地址,粘贴在环境变量的PATH后面,如下图 :

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第2张图片

然后右击(win10)这台电脑 -> 属性,然后根据下图的步骤添加,最后确定即可

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第3张图片

最后,打开cmd 输入php -v 看到版本,说明环境变量安装成功

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第4张图片

 

1.2 成功后再双击  start_for_win.bat 文件,出现如下图,说明安装成功

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第5张图片

1.3 成功后用telnet测试下

打开两个或两个以上的cmd窗口,输入telnet  127.0.0.1 8282   ( 就是本地的IP地址加上start_gateway中配置的的tcp的端口号), 两个窗口相互输入,相互都能看见,体验一下窗口命令聊天的乐趣,嘻嘻

2. 整合gatewayworker到 tp5 的项目中

刚开始觉得demo在本地跑起来了,就直接把demo复制到项目中了,但是没想到报找不到核心类文件的错误,最后找了找,发现必须得用composer下载,最后用composer下载了,双击,服务跑起来啦,哈哈哈哈

2.1 composer下载安装gatewayworker

(1)cd 进入项目目录,输入如下命令,回车,如果网速慢得等一会,下载成功后,将demo中的YourApp中的文件复制到项目中的控制器中

composer require workerman/gateway-worker

下载完成后目录结构如下:

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第6张图片

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第7张图片

复制过去后目录结构如下: 

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第8张图片

复制过来以后,修改启动文件中的目录名称,修改成自己项目中的(要在Windows中启动,也同样要修改启动文件的目录名称,换成自己目录中的名称)

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第9张图片

(2)将文件上传至服务器上,Linux系统输入 php start.php start  命令启动服务,出现如下图,说明安装成功

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第10张图片

欧克,服务启动你就可以对他进行任何操作了,尽情的发挥吧。

最后要说的一点就是刚开始启动的时候,一直不停的停止,不停的启动,没有启动成功,报的如下错误:

 Fatal error: Uncaught Exception in /home/wwwroot/highway/vendor/workerman/workerman/Worker.php:2208

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第11张图片

最后看了报错原因,发现是PHP的 stream_socket_server 函数被 php.ini 禁用了,去php.ini中找到 disable_functions 一项,将 stream_socket_server 禁用项删掉,重启 php-fpm,然后再启动start.php,好啦,万事大吉!

3.将start.php加入开机自启

3.1 编写开机自启启动文件workermanstart.sh(名称自己来定),上传服务器,将权限改为可执行(命令:chmod +x workermanstart.sh)文件内容如下:

#! /bin/sh

proc_name="WorkerMan"                          #进程名称
log_name="/home/wwwroot/highway/workerman.log"                    #日志名称

proc_num=`ps -ef | grep $proc_name | grep -v grep | wc -l`                #进程数量


if [ $proc_num -eq 0 ]
then
 /usr/local/php/bin/php /home/wwwroot/highway/start.php restart -d
  echo `date +%Y-%m-%d` `date +%H:%M:%S`  $proc_name >>$log_name
fi

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第12张图片

3.2  编辑 /etc/rc.local  文件,命令如下:

 

在开机启动文件中加入:nohup /home/wwwroot/highway/workermanstart.sh >/dev/null 2>&1&

保存退出。

ps命令查看状态

Linux 系统下安装 gatewayworker,tp5框架整合gatewayworker_第13张图片

你可能感兴趣的:(tcp,websocket)