为了能支持更大的并发连接数,必须安装event扩展或者libevent扩展(二者作用相同,二选一即可),并且优化Linux内核。以event为例,安装方法如下:
1.centos系统安装
(1)安装event扩展依赖的libevent-devel包,命令行运行
yum install libevent-devel-y
#php7用下面命令
#yum install libevent2-devel-y
(2)安装event扩展,命令行运行
(event扩展要求PHP>=5.4,PHP5.3用户请安装libevent扩展(libevent扩展同时支持php5.4-5.6))
pecl install event
注意提示:Include libevent OpenSSL support[yes]:时输入no回车。
注意提示:PHP Namespace for all Event classes:时输入yes,其它直接敲回车就行。
如果安装失败请参考本节结尾的问题处理。
(3)命令行运行(如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径)
echo extension=event.so>/etc/php.d/30-event.ini
2.debian/ubuntu系统安装
(1)安装event扩展依赖的libevent-dev包,命令行运行
apt-get install libevent-dev-y
#php7用下面命令
apt-get install libevent2-dev-y
(2)安装event扩展,命令行运行
(注意:event扩展要求PHP>=5.4,PHP5.3用户请安装libevent扩展(libevent扩展同时支持php5.4-5.6))
pecl install event
注意提示:Include libevent OpenSSL support[yes]:时输入no回车。
注意提示:PHP Namespace for all Event classes:时输入yes,其它直接敲回车就行。
如果安装失败请参考页面底部常见问题或者跳过以下步骤尝试安装libevent扩展,见本页面底部。
(3)命令行运行(需要切换到root用户。如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径)
echo extension=event.so>/etc/php5/cli/conf.d/30-event.ini
3.mac os系统安装
mac系统一般作为开发机,不必安装event扩展。
全新系统安装(全新安装PHP+扩展)
4.centos系统安装
(1)命令行运行(此步骤包含了安装php-cli主程序以及pcntl、posix、libevent库及git程序)
yum install php-cli php-process git gcc php-devel php-pear libevent-devel-y
(2)安装event扩展,命令行运行
(注意:event扩展要求PHP>=5.4,PHP5.3用户请安装libevent扩展(libevent扩展也支持php5.4-5.6),见本页面底部)
pecl install event
注意提示:Include libevent OpenSSL support[yes]:时输入no回车。
注意提示:PHP Namespace for all Event classes:时输入yes,其它直接敲回车就行。
如果安装失败请参考页面底部常见问题或者跳过以下步骤3,尝试安装libevent扩展,见本页面底部。
(3)命令行运行(此步骤是配置event扩展的ini配置,如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径)
echo extension=event.so>/etc/php.d/30-event.ini
(4)命令行运行(此步骤是通过github下载WorkerMan主程序)
git clone https://***.com/walkor/WorkerMan
(5)参考入门指引,简单开发实例部分写入口文件运行。
或者从官网下载打包好的demo运行。(www.xing528.com)
5.debian/ubuntu系统安装
(1)命令行运行(此步骤包含了安装php-cli主程序、libevent库及git程序)
apt-get install php5-cli git gcc php-pear php5-dev libevent-dev-y
(2)安装event扩展,命令行运行
(注意:event扩展要求PHP>=5.4,PHP5.3用户请安装libevent扩展(libevent扩展也支持php5.4-5.6)
pecl install event
注意提示:Include libevent OpenSSL support[yes]:时输入no回车。
注意提示:PHP Namespace for all Event classes:时输入yes,其它直接敲回车就行。
如果安装失败请参考页面底部常见问题或者跳过以下步骤3,尝试安装libevent扩展,见本页面底部。
(3)命令行运行(需要切换到root用户。此步骤是配置Event扩展的ini配置,如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径)
echo extension=event.so>/etc/php5/cli/conf.d/30-event.ini
(4)命令行运行(此步骤是通过github下载WorkerMan主程序)
git clone https://***.com/walkor/WorkerMan
6.mac os系统安装
方法1:mac系统自带PHP Cli,但是可能缺少pcntl扩展。
通过http://www.***.net/download/WorkerManzip下载WorkerMan主程序,或者到官网下载例子运行。
方法2:通过brew命令安装php及对应扩展
(1)命令行运行以下命令安装brew工具(如果已经安装过brew可以跳过此步骤)
(2)命令行运行以下命令安装php7
brew install php70
(3)命令行运行以下命令安装event扩展
brew install php70-event
(4)到官网下载例子运行
7.Event扩展说明
Event扩展不是必需的,当业务需要支撑大于1000的并发连接时,推荐安装Event,能够支持巨大的并发连接。如果业务并发连接比较低,例如1000以下并发连接,则可以不用安装。
如果无法安装Event扩展,可以用libevent扩展代替,注意目前libevent扩展不支持php7,php7用户只能使用Event扩展。
注意:
(1)libevent扩展也同样依赖libevent库,所以首先需要安装libevent-devel包(并非扩展)。
(2)libevent扩展支持php5.3-5.6,目前还不支持php7。php7用户请使用event扩展,php7用户请不要装libevent扩展,否则会出现coredump错误。
安装libevent扩展方法如下:
1.centos系统
yum 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
如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径。
2.debian/ubuntu系统
apt-get install libevent-dev
pecl install channel://pecl.php.net/libevent-0.1.0//提示libevent installation[autodetect]:时按回车
echo extension=libevent.so>/etc/php5/cli/conf.d/libevent.ini
如果ini文件位置不对,可以通过运行php--ini找到实际加载的ini文件路径。
常见问题:
(1)如果出现如下报错checking for include/event2/event.h...not found,请先尝试删除libevent-dev(el)库安并装libevent2-dev(el)。centos系统:yum remove libevent-devel&&yum install libevent2-devel debian/ubuntu系统:apt-get remove libevent-dev&&apt-get install libevent2-dev
(2)如果出现如下报错NOTICE:PHP message:PHP Warning:PHP Startup:Unable to load dynamic library'.../event.so'-..../event.so:undefined symbol:php_Sockets_le_Socket in Unknown on line 0。请更改event.so和Socket.so的加载顺序,既在php.ini中将extension=Socket.so写在extension=event.so前面,让Socket扩展先加载。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。