Home
Download
Document
Forum
Video
Donate
Source Code
AI 助理
Sponsors
CRMEB
Apipost
腾讯云
微擎
禅道
51Talk
Products
Swoole AI 智能文档翻译器
Swoole-Compiler PHP 代码加密器
CRMEB 新零售社交电商系统
Login
Register
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
swoole-cli编译步骤 --main 分支
## swoole-cli main 分支 静态编译 swoole-cli ## 构建步骤: >备注: >> macos 环境下静态编译,不需要容器运行环境 > linux 环境下编译重点:需要两次生成构建脚本 >> 容器外生成构建脚本 (第一次)为了生成进入容器的脚本 >> 容器内生成构建脚本 (第二次) >> 使用alpine linux 发行版 构建 ```shell ## 准备项目源码 git clone -b main --recursive https://github.com/swoole/swoole-cli.git cd swoole-cli # 准备PHP 运行时 (看提示,把 PHP 运行时导入环境变量PATH ) sh setup-php-runtime.sh --mirror china # 准备运行脚本(目的是为了生成构建容器的脚本和进入容器的脚本)【容器外】 composer update php prepare.php --without-docker --skip-download=1 # 查看用的构建命令 bash make.sh -h # 构建容器运行环境 bash make.sh docker-build # 启动容器运行环境,并进入容器 bash make.sh docker-bash # 准备运行脚本( 下载各依赖库源码,生成构建脚本)【容器内】 sh setup-php-runtime.sh --mirror china composer update php prepare.php +inotify +apcu +ds +xlswriter +ssh2 --with-swoole-pgsql=1 # 静态编译依赖库 bash make.sh all-library # 静态编译 PHP 预处理 bash make.sh config # 静态编译 PHP (汇编、编译、链接) bash make.sh build # 静态编译 PHP (打包) bash make.sh archive ``` ## 生成 swoole-cli 依赖库依赖图 ```shell # 生成 ext-dependency-graph.graphviz.dot 文件 php prepare.php --without-docker --skip-download=1 +inotify +apcu +ds +xlswriter +ssh2 --with-swoole-pgsql=1 --with-dependency-graph=1 # 生成PDF 和 svg 格式的文件 sh sapi/scripts/generate-dependency-graph.sh ## 生成的依赖图文件位于 bin/ext-dependency-graph.pdf bin/ext-dependency-graph.svg bin/ext-dependency-graph.webp ``` ## 参考文档 1. [更多构建选项](https://github.com/swoole/swoole-cli/blob/main/docs/options.md) 1. [swoole-cli 项目镜像地址](https://gitee.com/swoole/swoole-cli.git) 1. [快速初始化构建环境](https://github.com/swoole/swoole-cli/tree/main/sapi/quickstart) 1. [静态编译 PHP 8 系列、PHP7.4 、PHP7.3](https://www.cnblogs.com/jingjingxyk/p/17610540.html) 1. [添加扩展、添加构建依赖库例子](https://wenda.swoole.com/detail/109130) ## 扩展依赖图预览 ![](https://wenda-1252906962.file.myqcloud.com/uploads/202308/37683_64d03f00656c3.webp)
发布于1年前 · 21 次浏览 · 来自
分享
jingjingxyk
## swoole-cli main 分支 静态编译 swoole-cli ## 构建步骤: >备注: >> macos 环境下静态编译,不需要容器运行环境 > linux 环境下编译重点:需要两次生成构建脚本 >> 容器外生成构建脚本 (第一次)为了生成进入容器的脚本 >> 容器内生成构建脚本 (第二次) >> 使用alpine linux 发行版 构建 ```shell ## 准备项目源码 git clone -b main --recursive https://github.com/swoole/swoole-cli.git cd swoole-cli # 准备PHP 运行时 (看提示,把 PHP 运行时导入环境变量PATH ) sh setup-php-runtime.sh --mirror china # 准备运行脚本(目的是为了生成构建容器的脚本和进入容器的脚本)【容器外】 composer update php prepare.php --without-docker --skip-download=1 # 查看用的构建命令 bash make.sh -h # 构建容器运行环境 bash make.sh docker-build # 启动容器运行环境,并进入容器 bash make.sh docker-bash # 准备运行脚本( 下载各依赖库源码,生成构建脚本)【容器内】 sh setup-php-runtime.sh --mirror china composer update php prepare.php +inotify +apcu +ds +xlswriter +ssh2 --with-swoole-pgsql=1 # 静态编译依赖库 bash make.sh all-library # 静态编译 PHP 预处理 bash make.sh config # 静态编译 PHP (汇编、编译、链接) bash make.sh build # 静态编译 PHP (打包) bash make.sh archive ``` ## 生成 swoole-cli 依赖库依赖图 ```shell # 生成 ext-dependency-graph.graphviz.dot 文件 php prepare.php --without-docker --skip-download=1 +inotify +apcu +ds +xlswriter +ssh2 --with-swoole-pgsql=1 --with-dependency-graph=1 # 生成PDF 和 svg 格式的文件 sh sapi/scripts/generate-dependency-graph.sh ## 生成的依赖图文件位于 bin/ext-dependency-graph.pdf bin/ext-dependency-graph.svg bin/ext-dependency-graph.webp ``` ## 参考文档 1. [更多构建选项](https://github.com/swoole/swoole-cli/blob/main/docs/options.md) 1. [swoole-cli 项目镜像地址](https://gitee.com/swoole/swoole-cli.git) 1. [快速初始化构建环境](https://github.com/swoole/swoole-cli/tree/main/sapi/quickstart) 1. [静态编译 PHP 8 系列、PHP7.4 、PHP7.3](https://www.cnblogs.com/jingjingxyk/p/17610540.html) 1. [添加扩展、添加构建依赖库例子](https://wenda.swoole.com/detail/109130) ## 扩展依赖图预览 ![](https://wenda-1252906962.file.myqcloud.com/uploads/202308/37683_64d03f00656c3.webp)
赞
0
分享
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
评论
2023-08-19
Rango
666
赞
0
回复
微信公众号
热门内容
暂无回复的问答
- CodeGalaxy K3s 轻量集群节点之间如何实现负载均衡
- 关于openssl CURL WARNING swSSL_connect: SSL_connect(fd=69) failed. Error: error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small[1|394]
- 多个模型如何进行事务异常回退?
- websocket开启wss报错
- 协程tcp服务器如何使用多进程?recv()方法接收信息,打印出来的pid一直是同一个。没用使用到多进程啊。