php之swoole安装与基本使用
设置镜像加速:
php /usr/local/php8.2/composer.phar config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
扩展安装: 参考GitHub地址
安装:
1. 使用PHP官方的PECL工具安装 (初学者)
pecl install swoole
2. 从源码编译安装 (推荐)
git clone https://github.com/swoole/swoole-src.git && \ cd swoole-src && \ phpize && \ ./configure && \ make && sudo make install
[最新]
1) wget https://pecl.php.net/get/swoole-4.4.26.tgz 2) tar -zxvf swoole-4.4.26.tgz 3) cd swoole-4.4.26 phpize ./configure --enable-openssl --enable-http2 --with-php-config=/usr/local/php/bin/php-config # http2, make && make install
如果缺少了编译项,需清理后重新编译:
make clean # 在添加扩展项之后,清理之前编译的文件
phpize clean && phpize # php发生了变化, 需要进行重新编译
添加扩展配置:
[swoole] extension=swoole.so swoole.use_shortname=off // 是否关闭短命令->use_shortname=on/off
注意点: 使用源码进行安装的时候,遇到的问题总结
1)phpize命令无法找到,使用绝对路径即可解决
2)./configure 的时候出错:configure: error: Cannot find php-config. Please use --with-php-config=PATH 指定PHP配置文件目录即可 ./configure --with-php-config=/usr/local/php/bin/php-config 即可
常用命令:
1. 查看PHP扩展的相关配置
php --ri swoole swoole swoole support => enabled Version => 4.2.10 Author => Swoole Group[email: team@swoole.com] coroutine => enabled epoll => enabled eventfd => enabled signalfd => enabled cpu_affinity => enabled spinlock => enabled rwlock => enabled pcre => enabled zlib => enabled mutex_timedlock => enabled pthread_barrier => enabled futex => enabled async_redis => enabled Directive => Local Value => Master Value swoole.enable_coroutine => On => On swoole.aio_thread_num => 2 => 2 swoole.display_errors => On => On swoole.use_shortname => On => On swoole.fast_serialize => Off => Off swoole.unixsock_buffer_size => 8388608 => 8388608
常见错误:
1.
No package ‘libbrotlienc‘ found
需要安装依赖:
意思是系统本地没有libbrotlienc这个依赖库。 这个依赖库是用于压缩HTTP传输内容的,Swoole支持的HTTP压缩格式有三种:gzip、br、deflate。而libbrotlienc库就是用在br这种格式上的。 在编译Swoole时如果加上了--enable-brotli=yes参数,即表示要开启br压缩功能,就需要用到这个依赖库。 apt install libbrotli-dev apt install libz-dev
2. 在协程中使用异步http去发起https的请求会报错:
PHP Fatal error: Uncaught Swoole\Coroutine\Http\Client\Exception: you must configure with --enable-openssl to support ssl connection when compiling Swoole
解决:
需要重新变一下swoole,开启openssl的支持
查看现存编译项:
php --ri swoole
重新编译
cd php源码包 phpize whereis php-config ./configure --enable-openssl --with-php-config=/usr/bin/php-config make && make install php --ri swoole 检查是否成功
sodium扩展安装
[windows]
soduim源码包自带,直接修改php.ini,取消extension=sodium注释即可
[linux]
1)安装依赖
apt-get install libsodium-dev
2)找到源码扩展目录
cd /usr/local/php-xx/ext/sodium
3)编译安装
/usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php8.2/bin/php-config make && make install
4) 将配置文件中的注释去除即可
5)查看扩展信息
sodium sodium support => enabled libsodium headers version => 1.0.18 libsodium library version => 1.0.18

浙公网安备 33010602011771号