Swoole是什么?

Swoole是一个PHP的C扩展,可用来开发PHP的高性能高并发TCP/UDP Server。Swoole的网络IO部分基于多线程的epoll/kqueue事件循环,是全异步非阻塞的。 业务逻辑部分既可以像node.js一样全异步回调执行,也可以多进程同步阻塞方式来运行。这样既保证了Server能够应对高并发和大量TCP连接。又保证业务代码仍然可以简单的编写。

Swoole有什么优点?

1.纯C编写无依赖
2.并发10万TCP连接
3.TCP+UDP同时支持
4.Server+Client网络异步/业务同步
5.支持多进程/多线程
6.CPU亲和性/守护进程
7.简单开发效率高

Swoole扩展的编译安装

Swoole扩展是按照php标准扩展构建的。使用phpize来生成php编译配置,./configure来做编译配置检测,make和make install来完成安装。

请下载releases版本的swoole,直接从github主干上拉取最新代码可能会编译不过
cd swoole
phpize
./configure
make && sudo make install
成功后,修改php.ini加入extension=swoole.so。通过php -m或phpinfo()来查看是否成功加载了swoole扩展。

常见的编译错误:

make或make install无法执行或编译错误

phpize和php-config不对应,需要使用绝对路径来进行编译

/usr/local/php-5.4.17/bin/phpize
./configure –with-php-config=/usr/local/php-5.4.17/bin/php-config
Cannot find autoconf

phpize命令需要autoconf工具,请先安装它。

make install失败

make install需要root权限,如果不是以root用户登录的,请用sudo或su,再进行安装。

修改了php.ini后,php -m或phpinfo中没有swoole

修改php.ini,打开错误显示,查看是否存在启动时错误。

display_errors => On
display_startup_errors => On


应用案例

swoole在国内被多家网络游戏、手机游戏公司使用。替代了C++、java等复杂编程语言来实现网络Server的程序。使用PHP+Swoole扩展,开发效率可以大大提高。
swoole官方提供了一个基于swoole扩展的PHP应用服务器实现,比Apache或Nginx+php-fpm性能高出6-15倍。

GitHub地址:https://github.com/matyhtf/swoole
官网:http://www.swoole.com
pecl地址: http://pecl.php.net/package/swoole

swoole项目在春节前发布了1.6.10版本。