资料介绍
软件简介
microphp 自执行 SAPI
micro 自执行 SAPI 提供了 php“自执行文件”的可能性
你只需要将构建的 micro.sfx 文件与任意 php 文件或者 phar 包拼接(cat 或者 copy /b)为一个文件就可以直接执行这个 php 文件
兼容性
目前兼容 PHP7.4 与 8.0;兼容 Windows、Linux、macOS。
构建
准备源码
1.将本仓库clone到php源码的sapi/micro下
# 在php源码目录下 git clonesapi/micro
2.打patch
patch文件在patches目录下,选择patch文件:
| patch文件 | 平台/PHP版本 | 是否必须 | 作用 |
|---|---|---|---|
| disable_huge_page.patch | Linux | 可选 | 禁用linux构建的max-page-size选项,缩减sfx体积(典型的, 10M+ -> 5M) |
|
vcruntime140_ |
Windows | 必选 | 禁用sfx启动时GetModuleHandle(vcruntime140(d).dll) |
|
win32_ |
Windows | 必选 | 修改构建系统以静态构建 |
| zend_stream.patch | Windows | 必选 | 修改构建系统以静态构建 |
| phar.patch | * | 可选 | 实现phar的支持 |
并分别进行patch:
# 在php源码目录下 patch -p1 < sapi/micro/patches/
unix-like 构建
0.参考官方构建说明准备PHP构建环境
1.buildconf
# 在php源码目录下 ./buildconf --force
2.configure
# 在php源码目录下 ./configure
参考的选项:
--disable-phpdbg --disable-cgi --disable-cli --disable-all --enable-micro --enable-phar --with-ffi --enable-zlib
3.make
# 在php源码目录下 make micro
(make all(或者make) 或许也可以,但建议还是只构建micro SAPI
生成的文件在 sapi/micro/micro.sfx
Windows 构建
0.参考官方构建说明准备PHP构建环境
1.buildconf
# 在php源码目录下 buildconf
2.configure
# 在php源码目录下 configure
参考的选项:
--disable-all --disable-zts --enable-micro --enable-phar --with-ffi --enable-zlib
3.make 由于构建系统的实现问题, Windows下不能使用nmake命令直接构建,使用nmake sfx来构建
# 在php源码目录下 nmake sfx
生成的文件在 <架构名>\<配置名>\micro.sfx
使用
将micro.sfx和php文件拼接即可
例如:myawesomeapp.php内容为
linux下
cat /path/to/micro.sfx myawesomeapp.php > myawesomeapp chmod 0755 ./myawesomeapp ./myawesomeapp # 回显 "hello, this is my awesome app."
或者Windows下
COPY /b \path\to\micro.sfx + myawesomeapp.php myawesomeapp.exe myawesomeapp.exe REM 回显 "hello, this is my awesome app."
优化
linux下php对于hugepages优化导致了生成的文件很大,如果不考虑对hugepages的优化,使用disable_huge_page.patch来来减小文件尺寸
linux下静态构建需要包含c标准库,常见的glibc较大,推荐使用musl,手动安装的musl或者某些发行版会提供gcc(或clang)的musl wrapper:musl-gcc或者musl-clang。在进行configure之前,通过指定CC和CXX变量来使用这些wrapper
例如
# ./buildconf things... export CC=musl-gcc export CXX=musl-gcc # ./configure balabala # make balabala
linux下构建时一般希望是纯静态的,但构建使用的发行版不一定提供依赖的库(zlib libffi等)的静态库版本,这时考虑自行构建依赖库
以libffi为例:
# 通过git获取源码 git clone https://github.com/libffi/libffi cd libffi git checkoutautoreconf -i # 或者直接下载tarball解压 wget tar xf cd # 如果使用musl的话 export CC=musl-gcc export CXX=musl-gcc # 构建安装 ./configure --prefix=/my/prefered/path && make -j`nproc` && make install
然后使用以下export命令来构建micro:
# ./buildconf things... # export CC=musl-xxx things... export PKG_CONFIG_PATH=/my/prefered/path/lib/pkgconfig # ./configure balabala # make balabala
- 高配版自平衡自行车原理图下载 0次下载
- MICRO USB 5P type180度插板无卷边图纸 14次下载
- MICRO USB 5P前插后贴有住无卷边5.9图纸 11次下载
- MICRO USB四脚插件无卷边原理图 9次下载
- MICRO USB四脚插件卷边图纸 13次下载
- MICRO USB全贴壳长5.5无卷边图解 9次下载
- MICRO USB全贴壳长5.0卷边图纸 11次下载
- MICRO USB小牛角无卷边原理图 9次下载
- MICRO USB小牛角无卷边图纸 6次下载
- MICRO SIM翻盖式SNO-1340原理图 18次下载
- MICRO SIM CARD 8P+1 1.24H直插式原理图 21次下载
- MICRO SIM 8PIN推拉式SMO-1535原理图 13次下载
- Micro高频头使用说明书 1次下载
- 基于JJBoover的远程控制ARDUNO自平衡机器人资料下载 2次下载
- 用Delphi实现基于SAPI的电脑语音控制应用程序
- 怎么通过FPGA采取SD模式实现Micro SD卡的驱动 2323次阅读
- nr_micro_shell介绍及使用方法 3329次阅读
- 气动执行器的组成_气动执行器选型 4072次阅读
- dfrobot小创客轻松玩转micro:bit介绍 1893次阅读
- 微雪电子|Micro:bit带电池简介 2303次阅读
- 微雪电子BBC Micro:Bit学习板简介 2018次阅读
- 微雪电子Micro:bit传感器介绍 4358次阅读
- 微雪电子micro:bit接口扩展板简介 2814次阅读
- 微雪电子bit|micro:bit喇叭扩展板简介 2438次阅读
- 微雪电子Micro SD卡 存储模块简介 2965次阅读
- 浅析Micro LED技术的原理、优势及未来展望 1.9w次阅读
- 轻触自锁开关电路图大全(自锁互锁电子开关/双自锁轻触开关电路) 9.5w次阅读
- micro led技术原理及简介(microled功能特性和优势及发展前景) 14.1w次阅读
- micro usb接口定义图_micro usb接线图 75.2w次阅读
- mfc程序执行流程小结,MFC程序的执行顺序 9579次阅读
下载排行
本周
- 1NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
- 2智慧监狱建设的核心终端—智慧监仓屏
- 0.25 MB | 2次下载 | 免费
- 3PC318C016M/D 200V半桥栅极驱动器技术手册
- 0.77 MB | 2次下载 | 免费
- 45.0SMDJ200A单向TVS瞬态抑制二极管规格书
- 0.88 MB | 1次下载 | 免费
- 5PC318C041EQ 200V半桥栅极驱动器技术手册
- 0.50 MB | 次下载 | 免费
- 6PC318C042NM 200V半桥栅极驱动器技术手册
- 0.55 MB | 次下载 | 免费
- 7技嘉H110主板IT8628E_BX IO电路图资料
- 2.61 MB | 次下载 | 1 积分
- 8H110主板CPU PWM芯片ISL95858HRZ-T核心供电电路图资料
- 0.63 MB | 次下载 | 1 积分
本月
- 1元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 241次下载 | 免费
- 2元宇宙底层硬件系列报告
- 13.42 MB | 184次下载 | 免费
- 32022 年展望報告 – 半導體產業
- 1.43 MB | 136次下载 | 免费
- 4晶振与滤波器应用电路《电子工程师必备:元器件应用宝典》
- 1.57 MB | 90次下载 | 免费
- 5汽车电子行业深度解析:智能化与电动化方兴未艾
- 6.47 MB | 71次下载 | 免费
- 6中国DPU行业白皮书
- 23.80 MB | 37次下载 | 免费
- 7晶科鑫代理线-微盟电子2021年度产品目录选型手册
- 14.75 MB | 27次下载 | 免费
- 8NB-IoT芯片厂商的资料说明
- 0.31 MB | 22次下载 | 1 积分
总榜
- 1matlab软件下载入口
- 未知 | 935137次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191425次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183352次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81602次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73822次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65991次下载 | 10 积分
电子发烧友App






创作
发文章
发帖
提问
发资料
发视频
上传资料赚积分
评论