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

 

 

 

 

 

 

 

 

 








posted @ 2018-12-19 14:43  X-Wolf  阅读(1733)  评论(0)    收藏  举报