首页 技术 正文
技术 2022年11月9日
0 收藏 712 点赞 4,174 浏览 1954 个字

1、workerman安装

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

官网上给的教程

workerman安装

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

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

[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的源码包里果然找到了这个扩展源码包,下面就是加入这个扩展。

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

[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安装成功。

2、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,文件结构如下

workerman安装

从workerman的配置文件可以看到,只要将项目放在applications文件夹下都可以运行,因为workerman包含了其配置文件。

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

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,488
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,488
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289