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
- 修改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/