swoole开发(一) Centos 安装swoole

1.安装swoole

pecl install swoole

查看swoole支持功能及安装版本

php72 --ri swoole
swoole

Swoole => enabled
Author => Swoole Team 
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语言可以应用的领域。但是与之对应的框架官方文档过于简单了,希望这次能够根据这次的项目,总结一份有关框架使用的说明文档,能够给希望使用这个框架的人一定的参考。

你可能感兴趣的:(swoole开发(一) Centos 安装swoole)