WorkerMan的安装和使用

时间:2017-04-19作者:klpeng分类:PHP浏览:3027评论:0

WorkerMan是PHP开发的开源高性能的PHP socket 服务器框架。应用相对还是较广的,下面来演示安装和使用

需要注意的是workerman只是一个代码包,如果php环境满足要求,下载后即可使用,实际上没有安装过程。 

workerman使用的是PHP CLI,与Apahce的PHP或者PHP-FPM不冲突。workerman不依赖Apache/nginx或者PHP-FPM,也不影响他们的运行。 

workerman对php环境的要求是: 

1、PHP CLI>=5.4,可以运行命令 php -v 查看版本 

2、Linux系统要求php安装了posix和pcntl扩展 

Linux系统可以在命令中运行 curl -Ss http://www.workerman.net/check.php | php 检测本地环境是否满足workerman。


我这边演示的机器是centos6.5系统,而且编译安装PHP的时候已经安装posix和pcntl扩展

如果php是通过yum安装的,则命令行运行 yum install php-process即可安装pcntl和posix扩展。

下面主要介绍一下,为了能支持更大的并发连接数,官方建议安装event扩展或者libevent扩展(二者作用相同,二选一即可)。

Event扩展在已经编译的PHP下安装,会报错,我们来安装libevent扩展,值得注意的是:libevnet扩展依赖libevent库,所以首先需要安装libevent-devel包(并非扩展)。

yum -y install libevent-devel
pecl install channel://pecl.php.net/libevent-0.1.0 #提示libevent installation [autodetect]: 时按回车
echo extension=libevent.so > /etc/php.d/libevent.ini

安装完成之后我们来签出代码:

git clone https://github.com/walkor/Workerman

下面我们来创建一个使用http协议对外提供服务的简单示例 http_test.php:

<?php
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';

// 创建一个Worker监听2345端口,使用http协议通讯
$http_worker = new Worker("http://0.0.0.0:2345");

// 启动4个进程对外提供服务
$http_worker->count = 4;

// 接收到浏览器发送的数据时回复hello world给浏览器
$http_worker->onMessage = function($connection, $data)
{
    //  向浏览器发送hello world
    $connection->send('hello world');
};

// 运行worker
Worker::runAll();


启动,以debug(调试)方式启动

php http_test.php start  #在浏览器访问当前服务器IP的2345端口会看到hello world

注意Workerman启动停止等命令都是在命令行中完成的,上面我们是以debug方式启动。

以daemon(守护进程)方式启动

php http_test.php start -d

停止

php http_test.php stop

重启

php http_test.php restart

平滑重启

php http_test.php reload

查看状态

php http_test.php status


debug和daemon方式区别

  1. 以debug方式启动,代码中echo、var_dump、print等打印函数会直接输出在终端。

  2. 以daemon方式启动,代码中echo、var_dump、print等打印会默认重定向到/dev/null文件,可以通过设置Worker::$stdoutFile = '/your/path/file';来设置这个文件路径。

  3. 以debug方式启动,终端关闭后workerman会随之关闭并退出。

  4. 以daemon方式启动,终端关闭后workerman继续后台正常运行。


原创文章如转载,请注明出处,本文首发于彭超的博客

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢