Swoole入门指南:PHP7安装Swoole详细教程
Swoole简介Swoole是:PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。
Server运行流程图
http://i2.运维网.com/images/blog/201801/05/2283ee433081ac889cf0c454196d97ba.jpg
进程/线程结构图
http://i2.运维网.com/images/blog/201801/05/eb7a3b2945423d8c03c23d134c8277af.jpg
环境
用nginx + php-fpm,性能更强大,配置更方便,并且为了跟上php的步伐,也使用了比较新的php版本,我php版本7.0.26。
[*] ubuntu-14
[*] php7.0.26
[*] nginx/1.10.2
[*] php-fpm
下载 swoole
方法1:首先下载swoole的源码包
wget -c https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz
解压: tar -zxvf v2.0.6.tar.gz
方法2:
从 https://github.com/swoole/swoole-src/releases 下载
编译&安装
cd swoole-src-2.0.6/ 下,
1.使用phpize来生成php编译配置
2.使用./configure 来做编译配置检测
3.make进行编译,make install进行安装
命令执行如下:
# phpize
# ./configure
# make && make install
4.make install后,如果正确,会出现以下内容
# make install
Installing shared extensions: /usr/lib64/php/modules/
修改配置文件
要能够使用该模块,还需要在 php.ini 文件中添加该模块。
extension=swoole.so
重启服务
新增php模块后,需要重新启动nginx和php-fpm服务,才会生效。
最后通过php -m或phpinfo()来查看是否成功加载了swoole,如图:
http://i2.运维网.com/images/blog/201801/05/7f97b417d08e902801ae4e5fc0a09aad.png
注意:
1.swoole_server只能用于php-cli环境,否则会抛出致命错误。
2.因此引入类/函数的php文件时必须要使用include_once或require_once,否会发生cannot redeclare function/class 的致命错误。
3.不要用exit()/die(),会导致worker进程退出。
4.PHP代码中如果有异常抛出,必须在回调函数中进行try/catch捕获异常,否则会导致工作进程退出。
参考:
1.https://wiki.swoole.com/wiki/page/1.html
2.https://segmentfault.com/a/1190000007614502
页:
[1]