Centos7 下部署-PHP-TP5 之Workerman & GateWay

                Centos7 下部署-PHP-TP5 之Workerman & GateWay 

Centos7 TP5配置WorkerMan

一:进入项目根目录 rm    composer.json

二: cd /home  & 安装composer

1下载:curl -sS https://getcomposer.org/installer | php

2移动composer.phar移动到环境下让其变成可执行:mv  composer.phar  /usr/local/bin/composer

3验证版本: composer -V

 

三:进入根目录 rm -rf vendor 然后 composer require topthink/think-worker

      (上一步是空项目,没有依赖其他拓展,如果已经是的有依赖其他 则在其他地方comparse ,将 刚Comparse出来的、vendor/comparse   与之前项目存在的/Vendor/comparse   进行比较 吧workman的依赖拷过去  并且吧TopXX、Workermana 文件文件夹一些相同目录拷贝过去,如下图, 如果没有直接填充)

四: 在根目录下创建server.php,编辑一下内容

<?php

define('APP_PATH', __DIR__ . '/application/');

define('BIND_MODULE','push/Worker');

//define('BIND_MODULE','chat/Gate');

 //require __DIR__ . '/../thinkphp/start.php';

// 加载框架引导文件

require __DIR__ . '/thinkphp/start.php';

五:创建workerman的controller,命名为Worker.php。在application/push/controller,目录不存在自行创建。添加以下内容:

<?php
namespace app\push\controller;
use think\worker\Server;
class Worker extends Server
{
    protected $socket = 'websocket://127.0.0.1:2346';
    /**
     * 收到信息
     * @param $connection
     * @param $data
     */
    public function onMessage($connection, $data)
    {
        $connection->send('我收到你的信息了');
    }

    /**
     * 当连接建立时触发的回调函数
     * @param $connection
     */
    public function onConnect($connection)
    {
    }

    /**
     * 当连接断开时触发的回调函数
     * @param $connection
     */
    public function onClose($connection)
    {       
    }
    /**
     * 当客户端的连接上发生错误时触发
     * @param $connection
     * @param $code
     * @param $msg
     */
    public function onError($connection, $code, $msg)
    {
        echo "error $code $msg\n";
    }

    /**
     * 每个进程启动
     * @param $worker
     */
    public function onWorkerStart($worker)
    {
    }
}

六:检查拓展是否都有

查看php -m  是否有pcntl以及 Posix的扩展

七:解决stream_socket_server() has been disabled for security reasons

  1.  修改php.ini配置文件: vim /usr/local/php/etc/php.ini    查找stream_socket_server().将其删   

 八:service  iptables stop  关闭IP防火墙

如果系统一定要开 iptables   则vi /etc/sysconfig/iptables   添加对应端口 

      systemctl restart iptables.service重启

      (阿里云则添加对应的安全规则,此处不详说)

九:运行 最初创建的server.php  php server.php start  

出现上图成功运行

十:长连接测试工具(可内网) http://www.blue-zero.com/WebSocket/

 

Centos7 TP5配置GateWay-Workerman

1:下载composer require workerman/gateway-worker 

( 原TP5自带的话 可略过)

2:下载gateway 封装的业务逻辑代码  https://www.workerman.net/download (选择 GatewayWorker框架(Linux Windows通用)

3:将下载的压缩包解压,将Applications/Yourapp中的文件全部复制到thinkphp5目录application里面的任意文件夹

4:将解压后的文件夹中的start.php复制到thinkphp5的根目录,即与application同级的目录。

5:将start.php文件中最后部分forearch循环括号内的路径改为自己的正确路径。

6:修改业务逻辑代码 start_gateway.php 文件 ,

 $gateway = new Gateway("text://0.0.0.0:8282");修改成

 $gateway = new Gateway("websocket://0.0.0.0:8282");

Name也可更改方便查看 进程状态!

7:修改   /vendor/autoload.php  

return ComposerAutoloaderInitd15e2bd93c7f83bfccc320b8bde0c0e9::getLoader();修改为自己的init XXX后面编号

8:进入到项目根目录php start.php start

 

友情链接【GateWay手册】:http://doc2.workerman.net/   

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章