Docker安装PHP的Swoole扩展

Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。Swoole4 协程的成熟将 PHP 带入了前所未有的时期, 为性能的提升提供了独一无二的可能性。Swoole 可以广泛应用于互联网、移动通信、云计算、 网络游戏、物联网(IOT)、车联网、智能家居等领域。使用 PHP + Swoole 可以使企业 IT 研发团队的效率大大提升,更加专注于开发创新产品。

swoole官方文档:https://www.swoole.com/

php的swoole扩展官方下载地址:https://pecl.php.net/package/swoole

github下载地址:https://github.com/swoole/swoole-src/releases

安装

1、安装php,进入php容器

[root@localhost ~]# docker pull php:latest
[root@localhost ~]# docker images
REPOSITORY                 TAG       IMAGE ID       CREATED         SIZE
php                       latest   1ac2989b6821   13 days ago     485MB
[root@localhost ~]# docker run -itd --name php -d php:latest
1eb31c653b45e380bda9b010f303ed64edc5c29ce646473bb793eb04410b3102
[root@localhost ~]# docker ps
CONTAINER ID   IMAGE                             COMMAND                 CREATED         STATUS         PORTS                                                                                                                             NAMES
1eb31c653b45   php:latest                        "docker-php-entrypoi…"   34 seconds ago   Up 33 seconds                                                                                                                                     php
e135126657e8   yandex/clickhouse-server:latest   "/entrypoint.sh"         19 hours ago     Up 2 hours      0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9009->9009/tcp, :::9009->9009/tcp   clickhouse
[root@localhost ~]# docker exec -it 1eb31c653b45 /bin/sh
root@1eb31c653b45:/# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
random
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

可以看到最新php没有默认安装swoole扩展

2、更新源

root@1eb31c653b45:/# apt update

3、安装需要的编译环境和文本编辑器

root@1eb31c653b45:/# apt install -y gcc g++ autoconf libtool make vim wget

4、下载扩展解压后放到容器内

root@1eb31c653b45:/# wget https://pecl.php.net/get/swoole-5.0.1.tgz
root@1eb31c653b45:/# tar -xzvf swoole-5.0.1.tgz
#新建扩展库

root@1eb31c653b45:/# mkdir -p /usr/src/php/ext

#复制到容器内

root@1eb31c653b45:/# cp -r /swoole-5.0.1 /usr/src/php/ext

5、在容器执行安装

root@1eb31c653b45:/# docker-php-ext-install swoole-5.0.1

6、安装完成可看到swoole扩展

root@1eb31c653b45:/# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
random
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
swoole
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]

7、查看swoole版本

root@1eb31c653b45:/# php --ri swoole

swoole

Swoole => enabled
Author => Swoole Team <team@swoole.com>
Version => 5.0.1
Built => Jan  4 2023 03:34:03
coroutine => enabled with boost asm context
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
http2 => enabled
json => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
futex => 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

到此成功安装swoole扩展。

原文始发于微信公众号(面试技术):Docker安装PHP的Swoole扩展

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容