1.安装swoole
pecl install swoole
查看swoole支持功能及安装版本
php72 --ri swoole
swoole
Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 4.4.4
Built => Aug 22 2019 05:09:21
coroutine => enabled
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
sockets => enabled
openssl => OpenSSL 1.0.2k-fips 26 Jan 2017
http2 => enabled
pcre => enabled
zlib => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
mysqlnd => enabled
async_redis => enabled
Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 8388608 => 8388608
2.错误处理
2.1安装过程中出现错误:
'__builtin_saddl_overflow' was not declared in this scope
解决方案:
yum install centos-release-scl
yum install devtoolset-7
scl enable devtoolset-7 bash
2.2 加载顺序错误
php72 -m
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/swoole.so' - /usr/lib64/php/modules/swoole.so: undefined symbol: mysqlnd_find_charset_nr
原因:
扩展加载顺序问题,swoole扩展的加载位置写在了php.ini中而mysqlnd的加载位置在php.d中,导致先加载了swoole后加载了mysqlnd,所以报了这个错误
解决方法:
- 将mysqlnd的加载位置移动至php.ini中。
- 在php.d中新建swoole.ini配置引入swoole扩展。
二者相比较之下,更推荐后边的做法。
2.3 xdebug冲突
使用swoole开发Tcp服务器时与Xdebug产生冲突解决办法
修改php.d下的xdebug.ini,将
zend_extension=xdebug.so
修改为:
;zend_extension=xdebug.so
3.使用swoole framework进行功能开发
创建项目
composer create-project matyhtf/skeleton your_project_name
ps:安装composer
curl -sS https://getcomposer.org/installer | php
编外:
swoole 给php语言提供另外一种截然不同的编程方式,丰富了PHP语言可以应用的领域。但是与之对应的框架官方文档过于简单了,希望这次能够根据这次的项目,总结一份有关框架使用的说明文档,能够给希望使用这个框架的人一定的参考。