WorkerMan
中文手册
svn安装
http://www.linuxidc.com/Linux/2015-01/111748.htm
安装workman Redis
kinmo
安装workerman:
需要root帐号
命令行运行 /usr/sbin/setenforce 0
命令行运行 echo "/usr/sbin/setenforce 0" >> /etc/rc.local
命令行运行 cd /root
命令行运行 yum install wget #安装下载工具
命令行运行 wget http://www.atomicorp.com/installers/atomic #下载
命令行运行 sh ./atomic #安装
命令行运行 yum check-update #更新yum源
workerman对php环境的要求是:
1、php>=5.3.3,可以运行命令 php -v 查看版本
2、Linux系统要求php安装了posix和pcntl扩展
命令行运行 curl -Ss http://www.workerman.net/check.php | php # 检测本地环境是否满足workerman。
如果显示结果:(说明环境通过,反之需要安装php和pcntl和posix)
PHP Version >= 5.3.3 [OK]
Extension pcntl check [OK]
Extension posix check [OK]
http://blog.csdn.net/qdujunjie/article/details/43794597
用phpize安装pcntl扩展时遇到错误: yum install php-devel
安装libevent扩展
若满足条件 则不用运行下面的东西
命令行运行 yum install php-cli php-process git gcc php-devel php-pear libevent-devel
命令行运行 pecl install channel://pecl.php.net/libevent-0.1.0 #提示libevent installation [autodetect]: 时按回车
命令行运行 echo extension=libevent.so > /etc/php.d/libevent.ini
安装其他的php插件
命令行运行 yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
下载workerman程序:
如果不做分布式,下载命令:
命令行运行 cd /var/www/html #切换到php的工作目录
命令行运行 git clone https://github.com/walkor/workerman
分布式,下载命令:
命令行运行 git clone https://github.com/walkor/GatewayWorker
因为GatewayWorker内部支持了mysql,redis等功能,所以一般我们是使用GatewayWorker来部署
的帮助文档:
http://doc3.workerman.net/
GatewayWorker的帮助文档:
http://www.workerman.net/gatewaydoc/preface/README.html
配置支持redis
Linux:
https://github.com/phpredis/phpredis/releases
看最近版本的文件包,下载
命令行运行 cd /usr/local/src #进入软件包存放目录
命令行运行 wget https://github.com/phpredis/phpredis/archive/2.2.7.zip
命令行运行 unzip 2.2.7.zip
命令行运行 cd phpredis-2.2.7
命令行运行 find / -name 'phpize' #查找phpize位置
命令行运行 /usr/bin/phpize #用phpize生成configure配置文件
命令行运行 find / -name 'php-config' #查找php-config位置
命令行运行 ./configure --with-php-config=/usr/bin/php-config #配置
命令行运行 make #编译
命令行运行 make install #安装
会在/usr/lib64/php/modules/看到redis.so,说明编译成功
命令行运行 find / -name 'php.ini' #查找php.ini位置
命令行运行 vi /etc/php.ini #在最后一行添加以下内容
extension="redis.so"
命令行运行 php -i #查看phpinfo
里面有内容:
redis
Redis Support => enabled
Redis Version => 2.2.7
说明安装php的redis扩展成功!
windows:
https://github.com/phpredis/phpredis/downloads
注意:
通过phpinfo(); 查看其中的 Thread Safety 项,
如果是disabled 选择nts版
如果是enabled 选择ts版
根据php的版本来下载相应的扩展,版本必须对应
将php_redis.dll放入php的ext文件夹中,然后再php.ini添加代码extension=php_redis.dll
workman使用redis
http://happyliu.blog.51cto.com/501986/1622254 下载redis附件Redis.php
把Redis.php放到/GatewayWorker/Lib, 例如: /var/www/html/GatewayWorker/GatewayWorker/Lib
部署workman
http://www.workerman.net/gatewaydoc/gateway-worker-development/how-distributed.html
以debug方式启动
php start.php start
或者以daemon方式启动
php start.php start -d
启动gateway
cd /var/www/html/GatewayWorker/
以debug方式启动
php start.php start #说明:start stop restart
或者以daemon方式启动
php start.php start -d #说明:start stop restart
测试服务器 :
cd /usr/local/GatewayWorker
php start.php start
在zf框架里面调用例子
<?php
DealCore_Classes_Workerman::config("wkserver_product"); //使用哪个workerman服务地址配置名称,这句可以不写,默认是"wkserver_default"
$user_client = DealCore_Classes_Workerman::instance('User');
// ==同步调用==
$uid = 567;
$ret_sync = $user_client->getInfoByUid($uid);
?>
----------------
使用workman 报pcntl错误。。。。。去php.ini 中 disable_functions 注释掉
调用报错 pdo 扩展没装
先安装pdo模块
进到ext/pdo目录
/data/soft/php/bin/phpize
./configure --with-php-config=/data/soft/php/bin/php-config --enable-pdo=shared
make
make install
进到 php 源码目录 ext pdo-mysql /data/soft/php/bin/phpize
./configure --with-php-config=/data/soft/php/bin/php-config --with-pdo-mysql=/data/soft/mysql
crontab -l(查看当前任务计划)
crontab -e
5 */1 * * * php /var/workspace/uya/admin/web/auto/date/checkGrade.php > /dev/null &
svn resolved lib/verify/Product/Productservice.php (解决SVN冲突)