首页 > 编程语言 >静态编译 PHP 8 系列、PHP7.4 、PHP7.3

静态编译 PHP 8 系列、PHP7.4 、PHP7.3

时间:2023-08-07 12:11:20浏览次数:53  
标签:php swoole -- PHP7.4 PHP7.3 编译 PHP 静态

静态编译PHP运行时

文档说明: 只记录关键的地方; 发布时间: 2023-08-07
备注:

macos 环境下不需要启动容器环境,直接构建即可

PHP 原生构建选项文档

php 7.4 、7.3 分支需要单独克隆 ( 区别: openss 使用 v1 版本, curl 库 不启用http2库 http3库 )

复用 swoole-cli 编写好的静态依赖库 和编译流程

构建步骤:


git clone -b build_native_php https://github.com/swoole/swoole-cli.git
cd swoole-cli 

# 启用 alpine:3.17 容器环境 (docker pull alpine:3.17) 
bash sapi/quickstart/linux/run-alpine-container.sh

# 进入容器
bash sapi/quickstart/linux/connection-swoole-cli-alpine.sh

# 准备基础运行环境
sh  sapi/quickstart/linux/alpine-init.sh --mirror china 

# 准备PHP 运行时 (看提示,把 PHP 运行时导入环境变量PATH )
sh setup-php-runtime.sh  --mirror china

# 生成构建脚本 (这一步最好准备代理)
composer update
 php prepare.php  +inotify +apcu +ds +xlswriter +ssh2 +pgsql +pdo_pgsql \
--with-swoole-pgsql=1  --with-libavif=1  \
--with-php-version=8.1.20 \
--with-build-type=release \
--with-http-proxy=http://192.168.3.26:8015 \
--with-c-compiler=clang \
--with-install-library-cached=1 


# 静态编译  编译依赖库(生成静态依赖库)
bash make.sh  all-library 

# 静态编译 PHP 预处理
bash make.sh config 

# 静态编译PHP (汇编、编译、链接)
bash make.sh build 

# 静态编译PHP (打包)
bash make.sh archive 

更换 PHP 版本

# php 8.2.7
--with-php-version=8.2.7 

# php 8.1.21
--with-php-version=8.2.7 

# php 7.4.33
--with-php-version=7.4.33

构建php7.4 7.3 版本需要特别处理之处(更换分支即可)

php 7.4 、7.3 分支需要单独克隆 ( 区别: openss 使用 v1 版本, curl 库 不启用http2库 http3库 )

除了更换分支,构建步骤仍然如上

# php 7.4 
git clone -b build_php_7.4  https://github.com/jingjingxyk/swoole-cli/

# php 7.3 
 git clone -b build_php_7.3  https://github.com/jingjingxyk/swoole-cli/

生成扩展依赖图


# 生成 ext-dependency-graph.graphviz.dot 文件

 php prepare.php  +inotify +apcu +ds +xlswriter +ssh2 +pgsql +pdo_pgsql \
--with-swoole-pgsql=1  --with-libavif=1 \
--with-dependency-graph=1 
--with-skip-download=1 --without-docker=1 \

#生成PDF 、svg 、webp 格式的文件
sh sapi/extension-dependency-graph/generate-dependency-graph.sh

## 生成的依赖图文件位于
bin/ext-dependency-graph.pdf
bin/ext-dependency-graph.svg
bin/ext-dependency-graph.webp

参考文档

  1. PHP 原生构建选项文档
  2. swoole-cli
  3. 静态编译PHP 运行时
  4. 静态编译PHP 运行时构建 实践
  5. swoole-cli编译步骤 main 分支
  6. swoole-cli 添加扩展 模板例子、静态库构建模板例子
  7. swoole-cli编译步骤 main 分支
  8. 添加扩展例子模板源文件
  9. 添加静态链接库模板源文件

复用 swoole-ci 编译流程,实现如下软件的静态编译

  1. ffmpeg 静态编译
  2. nginx 静态编译
  3. opencv 静态编译
  4. coturn 静态编译

标签:php,swoole,--,PHP7.4,PHP7.3,编译,PHP,静态
From: https://www.cnblogs.com/jingjingxyk/p/17610540.html

相关文章

  • php://input输入流详解
    php://input输入流详解对于php://input介绍,PHP官方手册文档有一段话对它进行了很明确地概述。php://inputallowsyoutoreadrawPOSTdata.Itisalessmemoryintensivealternativeto$HTTP\_RAW\_POST_DATAanddoesnotneedanyspecialphp.inidirectives.php://in......
  • php 规范的注释
    /** * @name 名字 * @abstract 申明变量/类/方法 * @access 指明这个变量、类、函数/方法的存取权限 * @author 函数作者的名字和邮箱地址 * @category  组织packages * @copyright 指明版权信息 * @const 指明常量 * @deprecate 指明不推荐或者......
  • 基于php的奶茶原材料交易系统
    随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。奶茶原材料交易系统主要的功能模块包括工作提醒、产品广告、产品分类、产品管理、订单管理、留言管理、会员管理、管理员管理、友情链接、系统设置等功能。系统中管理员......
  • php简明手册(1)
    目录安装安装基于linuxsudodnfinstallphp安装postgresqlf支持sudodnfinstallphp-pgsql*基于源码编译tarzxfphp-x.x.xcd../php-x.x.x./configure--enable-fpm--with-mysqlmakesudomakeinstall创建配置文件,并将其复制到正确的位置cpphp.ini-deve......
  • php反序列化
    serialize() 函数用于序列化对象或数组,并返回一个字符串。unserialize()反序列化,将字符串转化为对象。通常见到调用外部文件,然后需要通过调用某个函数来执行最终得到flag。常见函数如下: ......
  • php实现文件夹的上传和下载
    ​ 前段时间做视频上传业务,通过网页上传视频到服务器。视频大小小则几十M,大则1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制;2,请求时间过长,请求超时;3,传输中断,必须重新上传导致前功尽弃; 解决方案:1,修改服务端上传的限制配置;Nginx以......
  • PHP+Apache服务器+帝国CMS
    win10环境搭建1.简易安装参考菜鸟教程,链接:https://www.runoob.com/php/php-install.html/2.详细安装Apache服务器安装:Apache是C语言实现的,专门用来提供HTTP服务;特性:简单、速度快、性能稳定、可配置(代理)2.1.1、主要用于解析静态文本,并发性能高,侧重于HTTP服务;2.1.2、支......
  • PHP知识要点
    php是否支持多继承?答案:不可以,只支持单继承。PHP是不支持多重继承的,一次只继承一个类。但是,我们可以通过在PHP中使用接口(Interface)或Trait特性来实现多重继承如何实现多继承呢?答案:可以使用interface或trait实现 ajax是怎么工作的?Ajax指AsynchronousJavaScriptandXML......
  • 使用nativephp开发桌面应用测试
    2023年7月21日10:29:03官网:https://nativephp.com/源码:https://github.com/NativePHP/laravel看起像laravel团队的作品安装:注意需要php8.1以上,laravel10以上composercreate-projectlaravel/laravelexample-app或者,你可以通过Laravel安装器作为全局Composer依赖:com......
  • PHP设计模式汇总
    PHP设计模式汇总没想到啊,没想到。自己竟然坚持了下来,完成了设计模式深入的学习,并且输出了23篇用php演示的设计模式的文章。但这不是最主要的,更深层次的收获是顺便背下了这些模式的定义及类图。在深入学习了设计模式之后,对Laravel等框架的架构理解也更清楚明了了。就像我在很多模式......