在WDCP的基础上部署WORKERMAN环境
我的第一个基于PHP的服务器端定时程序已经平稳运行两个月了,效果挺理想,借助威迈主动推送模块,实现了面向多个站点的定时触发动作的功能。
因为服务器内要使用WDCP对网站进行管理,所以本文章是我在WDCP的v2.5.14基础上进行操作的,那么具体步骤和相关知识汇总如下:
一、检查环境命令
curl简介
--------
curl是一个广泛使用的用来上传和下载的命令行工具,当然严格来讲,它还可以有别的用途。对于测试来讲,它是Web相关测试非常实用的工具,包括debugging,使用起来非常方便。而且另一方面,因为它是纯命令行的工具,所以也可以非常方便的作为一个组件集成到automation或者其他的测试框架里面,将HTTP/HTTPS/FTP相关的上传和下载等任务交给它。
安装
--------
1.下载curl-7.54.0.tar.bz2到/opt/,网址https://curl.haxx.se/download/
2.解压#tar -jxvf curl-7.54.0.tar.bz2
3.进入curl-7.54.0文件夹 #cd curl-7.54.0
4.#./configure(如果没有c相关的编译器,执行#yum install gcc命令)
5.依次执行#make -j 8、#make install 安装完成
6.检验是否安装成功#curl --version 会显示相应版本信息7.54.0
二、安装个vim方便编辑(可以略过,你当然可以使用vi)
#yum install -y vim*
三、PHP添加到环境变量
WDCP采用Nginx引擎时路径为:/www/wdlinux/nginx_php-5.5.9/bin/
所以执行#vim /etc/profile 在文件末尾加上如下代码:
export PATH="$PATH:/www/wdlinux/nginx_php-5.5.9/bin/"
保存后执行命令:#source /etc/profile
可通过#echo $PATH或直接#php -v命令查看是否添加成功
四、检查PHP环境(PHP必须在环境变量中)
curl -Ss http://www.workerman.net/check.php | php
或者可以直接运行PHP文件checkWorkerMan.php[下载]
检测结果如下:
PHP Version >= 5.3.3 [OK]
Extension pcntl check [fail]
Extension posix check [OK]
五、检测后缺少pcntl扩展,我们采用源码编译安装的方式,pcntl扩展安装如下:
1.去下载对应PHP版本的源码包:http://php.net/get/php-5.5.9.tar.gz/from/a/mirror
2.解压:# tar -zxvf php-5.3.29.tar.gz
3.进入源码中的ext/pcntl目录运行phpize命令编译扩展
# cd php-5.3.29/ext/pcntl/
# phpize
4.依次执行下列命令
# ./configure
# make
# make install
执行安装后的效果:
Installing shared extensions: /www/wdlinux/nginx_php-5.5.9/lib/php/extensions/no-debug-non-zts-20121212/
5.通过运行 php --ini查找php.ini文件位置,然后在文件中添加extension=pcntl.so
或者:
# echo extension=pcntl.so > /www/wdlinux/nginx_php-5.5.9/etc/php.ini
重启web服务后再次检测
# php /root/checkWorkerMan.php
PHP Version >= 5.3.3 [OK]
Extension pcntl check [OK]
Extension posix check [OK]
表示基础WorkerMan.php环境OK
六、为了能支持更大的并发连接数,建议安装event扩展或者libevent扩展
Event扩展不是必须的,当业务需要支撑上万并发连接时,推荐安装Event,能够支持巨大的并发连接。如果业务并发连接比较低,例如1000并发连接,则可以不用安装。
如果无法安装Event扩展,可以用libevent扩展代替,注意目前libevent扩展不支持php7,php7用户只能使用Event扩展。
1.安装libevent扩展依赖的libevent-devel包,命令行运行
# yum install libevent-devel
2.安装libevent扩展
# pecl install channel://pecl.php.net/libevent-0.1.0
提示libevent installation [autodetect]: 时按回车
3.修改配置
# echo extension=libevent.so > /www/wdlinux/nginx_php-5.5.9/etc/php.ini
4.重启web服务
至此,WORKERMAN就安装完成了
关注我的公众号: