zoukankan      html  css  js  c++  java
  • workerman与thinkphp结合

    运行workerman需要安装pcntl和event或者libevent

    pcntl安装方法

    以php-5.5.20为例,实际情况按自己安装的PHP目录

    一、 找到PHP源码,进入 php
    -5.5.20/ext/pcntl/目录 cd php-5.5.20/ext/pcntl/ 二、 运行locate phpize 找到phpize的目录,运行/usr/local/php-5.5.20/bin/phpize 三、 执行./configure --with-php-config=PHP配置文件路径 如:./configure --with-php-config=/usr/local/php-5.5.20/bin/php-config 四、 编译、安装 make && make install 如果/ext/pcntl/modules/pcntl.so 生成了,编译成功 五、将php加载的PHP.INI里面增加扩展 echo "extension=pcntl.so" >> /etc/php.ini (输入命令php --ini可查看当前使用的php.ini配置路径) 六、重启nginx nginx -s reload 七、 查看服务 ps -aux | grep pcntl

    如果是5.3版本可直接输入命令安装:
    yum install php-cli php-process git gcc php-devel php-pear libevent-devel php-pdo php-mysql_pdo -y

    event安装方法:

    一、yum install libevent-devel -y
    二、pecl install event

    提示:Include libevent OpenSSL support [yes] : 时输入no回车,其它直接敲回车就行

    三、echo extension=event.so > /etc/php.ini

     libevent安装方法:

    一、yum install libevent-devel

    二、pecl install channel://pecl.php.net/libevent-0.1.0 //提示libevent installation [autodetect]: 时按回车

    三、查看PHP目录lib/php/extensions/no-debug-non-zts-20121212的目录下面是否生成libevent.so

    四、输入命令php -v查看已经安装好的扩展

     workerman 下载地址:https://github.com/walkor/workerman

     Workerman集成到Thinkphp:

    一、 将下载的workerman目录放入项目ThinkPHPLibrary目录
    二、将workerman目录里的类文件除了LibConstants
    .php外的文件名修改为*.class.php

    三、在项目根目录新建文件worker.php文件,内容如下:

      

    <?php
    header("Content-type: text/html; charset=utf-8");

    // +----------------------------------------------------------------------
    // | ThinkPHP [ WE CAN DO IT JUST THINK ]
    // +----------------------------------------------------------------------
    // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
    // +----------------------------------------------------------------------
    // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
    // +----------------------------------------------------------------------
    // | Author: liu21st <liu21st@gmail.com>
    // +----------------------------------------------------------------------

    // 应用入口文件
    define('BIND_MODULE', 'Worker');
    define('BIND_CONTROLLER', 'Worker');
    define('BIND_ACTION', 'Start');
    //define('APP_MODE','cli');
    //ThinkPHP的其他设定
    define( 'APP_PATH', dirname(__FILE__).'/Application/' );
    require dirname( __FILE__).'/ThinkPHP/ThinkPHP.php';

    ?>


    四、复制一份Home模块将其名称修改为Worker

    五、在Worker模块中新建Worker控制器,其内容如下:
    <?php
    namespace WorkerController;
    use ThinkController;
    use WorkermanWorker;
    class WorkerController extends Controller{
    public function Start() {
    $worker = new Worker('text://0.0.0.0:8989'); //实例化Worker,并设置协议、IP和端口(地址和端口自定义)
    $worker->count = 4;
    $worker->onMessage = array($this, 'onMessage');
    //worker的其它回调方法可以参考onMessage
    Worker::runAll();
    }

    public function onMessage($connection, $data)
    {
    $connection->send('hello');
    }

    }

     ?>

    六、进入Linux系统,开启端口8989

    iptables -I INPUT -p tcp --dport 8989 -j ACCEPT

    七、进入项目根目录输入启动命令:

    php worker.php start

    显示OK,表明启动成功

    八、新建一个服务器链接,输入telnet 127.0.0.1 8989 测试

    Workerman访问MySQL:

    一、安装pdo和pdo_mysql等相关扩展
    
    二、在Worker模块的Conf目录下的config.php中添加数据库相关配置
    
    三、服务器地址不要用localhost用IP127.0.0.1

    四、配置好数据库后,可直接使用Thinkphp的Db方法
  • 相关阅读:
    TCP源码—连接建立
    TCP系列02—连接管理—1、三次握手与四次挥手
    TCP系列01—概述及协议头格式
    ubuntu软件管理apt与dpkg
    318. Maximum Product of Word Lengths
    317. Shortest Distance from All Buildings
    316. Remove Duplicate Letters
    315. Count of Smaller Numbers After Self
    314. Binary Tree Vertical Order Traversal
    313. Super Ugly Number
  • 原文地址:https://www.cnblogs.com/diguaer/p/7454657.html
Copyright © 2011-2022 走看看