workerman安装

一、workerman安装php

workerman是php的一个socket框架,简化了socket编程,已经为不少企业所用,今天在centos的ngix+php下安装了workerman,过程记录以下。mysql

官网上给的教程nginx

可是我已经安装了php环境,因此跳过上面的1,2,3,4步骤,直接下载workerman的zip包,进行第5步安装。git

进入workerman的目录进行安装以下。提示错误github

[root@localhost server]# ls
mysql         nginx-1.4.4  phpredis             workerman
mysql-5.6.21  php          redis-2.8.19
nginx         php-5.5.7    redis-2.8.19.tar.gz
[root@localhost server]# cd workerman/
[root@localhost workerman]# cd workerman/
[root@localhost workerman]# ls
bin  Common  conf  Core  logs
[root@localhost workerman]# cd bin
[root@localhost bin]# ls
workermand
[root@localhost bin]# ./workermand start
Workerman is starting ...
----------------------- EXTENSION ------------------------------
* pcntl                     [NOT SUPORT BUT REQUIRED] 

You have to enable pcntl 

Workerman start fail

缺乏扩展pcntl,这个扩展时workerman必须的,这个扩展时php包里有的,可是我在编译php的时候没有--enable-pcntl,在php的源码包里果真找到了这个扩展源码包,下面就是加入这个扩展。web

加入这个扩展后,重启php-fpm,nginx,再次开启workermanredis

[root@localhost bin]# ./workermand start
Workerman is starting ...
----------------------- EXTENSION ------------------------------
* sysvshm                    [NOT SUPORT] 
* sysvmsg                    [NOT SUPORT] 
* libevent                   [NOT SUPORT] 
------------------------ WORKERS -------------------------------
user  worker             listen                             processes  status
root  BusinessWorker     none                                32         [OK] 
root  Gateway            tcp://0.0.0.0:8480                  4          [OK] 
root  StatisticProvider  tcp://0.0.0.0:55858                 1          [OK] 
root  StatisticWeb       tcp://0.0.0.0:55757                 1          [OK] 
root  StatisticWorker    udp://0.0.0.0:55656                 1          [OK] 
----------------------------------------------------------------
Workerman start success ...

workerman安装成功。sql

 

二、workerman分离编程

虽然workerman能够做为Webserver的替代Nginx PHP-FPM等架构,而且性能也比Nginx PHP-FPM高,可是咱们不推荐这样作,由于PHP的WebServer市场上已经很成熟了,workerman不会再去作重复的事情。反而workerman把精力花在传统WebServer没法胜任的角色上,例如非HTTP协议的应用、TCP长连接应用、UDP应用、IM、游戏服务器、物联网等。

下载一个基于workerman的聊天框架https://github.com/walkor/workerman-chat,文件结构以下centos

 从workerman的配置文件能够看到,只要将项目放在applications文件夹下均可以运行,由于workerman包含了其配置文件。

 用户访问的是Web目录,若是Web目录放在这里,web服务器采起的是workerman的内置的服务器,我想将这个Web分离出来,用个人nginx服务器,workerman只是作socket的解析,如何来实现呢?其实很简单

 个人机器上的lnmp能够访问的路径是/alidata/www/yii2newstest/web,我只要上面的Web目录放在这个/alidata/www/yii2newstest/web中,其余的不用作任何的更改,就能够实现访问了。

相关文章
相关标签/搜索