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/   

 

 

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