資料介紹
軟件簡(jiǎn)介
microphp 自執(zhí)行 SAPI
micro 自執(zhí)行 SAPI 提供了 php“自執(zhí)行文件”的可能性
你只需要將構(gòu)建的 micro.sfx 文件與任意 php 文件或者 phar 包拼接(cat 或者 copy /b)為一個(gè)文件就可以直接執(zhí)行這個(gè) php 文件
兼容性
目前兼容 PHP7.4 與 8.0;兼容 Windows、Linux、macOS。
構(gòu)建
準(zhǔn)備源碼
1.將本倉庫clone到php源碼的sapi/micro下
# 在php源碼目錄下 git clonesapi/micro
2.打patch
patch文件在patches目錄下,選擇patch文件:
patch文件 | 平臺(tái)/PHP版本 | 是否必須 | 作用 |
---|---|---|---|
disable_huge_page.patch | Linux | 可選 | 禁用linux構(gòu)建的max-page-size選項(xiàng),縮減sfx體積(典型的, 10M+ -> 5M) |
vcruntime140_ |
Windows | 必選 | 禁用sfx啟動(dòng)時(shí)GetModuleHandle(vcruntime140(d).dll) |
win32_ |
Windows | 必選 | 修改構(gòu)建系統(tǒng)以靜態(tài)構(gòu)建 |
zend_stream.patch | Windows | 必選 | 修改構(gòu)建系統(tǒng)以靜態(tài)構(gòu)建 |
phar.patch | * | 可選 | 實(shí)現(xiàn)phar的支持 |
并分別進(jìn)行patch:
# 在php源碼目錄下 patch -p1 < sapi/micro/patches/
unix-like 構(gòu)建
0.參考官方構(gòu)建說明準(zhǔn)備PHP構(gòu)建環(huán)境
1.buildconf
# 在php源碼目錄下 ./buildconf --force
2.configure
# 在php源碼目錄下 ./configure
參考的選項(xiàng):
--disable-phpdbg --disable-cgi --disable-cli --disable-all --enable-micro --enable-phar --with-ffi --enable-zlib
3.make
# 在php源碼目錄下 make micro
(make all
(或者make
) 或許也可以,但建議還是只構(gòu)建micro SAPI
生成的文件在 sapi/micro/micro.sfx
Windows 構(gòu)建
0.參考官方構(gòu)建說明準(zhǔn)備PHP構(gòu)建環(huán)境
1.buildconf
# 在php源碼目錄下 buildconf
2.configure
# 在php源碼目錄下 configure
參考的選項(xiàng):
--disable-all --disable-zts --enable-micro --enable-phar --with-ffi --enable-zlib
3.make 由于構(gòu)建系統(tǒng)的實(shí)現(xiàn)問題, Windows下不能使用nmake命令直接構(gòu)建,使用nmake sfx來構(gòu)建
# 在php源碼目錄下 nmake sfx
生成的文件在 <架構(gòu)名>\<配置名>\micro.sfx
使用
將micro.sfx和php文件拼接即可
例如:myawesomeapp.php內(nèi)容為
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."
優(yōu)化
linux下php對(duì)于hugepages優(yōu)化導(dǎo)致了生成的文件很大,如果不考慮對(duì)hugepages的優(yōu)化,使用disable_huge_page.patch來來減小文件尺寸
linux下靜態(tài)構(gòu)建需要包含c標(biāo)準(zhǔn)庫,常見的glibc較大,推薦使用musl,手動(dòng)安裝的musl或者某些發(fā)行版會(huì)提供gcc(或clang)的musl wrapper:musl-gcc或者musl-clang。在進(jìn)行configure之前,通過指定CC和CXX變量來使用這些wrapper
例如
# ./buildconf things... export CC=musl-gcc export CXX=musl-gcc # ./configure balabala # make balabala
linux下構(gòu)建時(shí)一般希望是純靜態(tài)的,但構(gòu)建使用的發(fā)行版不一定提供依賴的庫(zlib libffi等)的靜態(tài)庫版本,這時(shí)考慮自行構(gòu)建依賴庫
以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 # 構(gòu)建安裝 ./configure --prefix=/my/prefered/path && make -j`nproc` && make install
然后使用以下export命令來構(gòu)建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的遠(yuǎn)程控制ARDUNO自平衡機(jī)器人資料下載 2次下載
- 用Delphi實(shí)現(xiàn)基于SAPI的電腦語音控制應(yīng)用程序
- 怎么通過FPGA采取SD模式實(shí)現(xiàn)Micro SD卡的驅(qū)動(dòng) 2323次閱讀
- nr_micro_shell介紹及使用方法 3329次閱讀
- 氣動(dòng)執(zhí)行器的組成_氣動(dòng)執(zhí)行器選型 4072次閱讀
- dfrobot小創(chuàng)客輕松玩轉(zhuǎn)micro:bit介紹 1893次閱讀
- 微雪電子|Micro:bit帶電池簡(jiǎn)介 2303次閱讀
- 微雪電子BBC Micro:Bit學(xué)習(xí)板簡(jiǎn)介 2018次閱讀
- 微雪電子Micro:bit傳感器介紹 4358次閱讀
- 微雪電子micro:bit接口擴(kuò)展板簡(jiǎn)介 2814次閱讀
- 微雪電子bit|micro:bit喇叭擴(kuò)展板簡(jiǎn)介 2438次閱讀
- 微雪電子Micro SD卡 存儲(chǔ)模塊簡(jiǎn)介 2965次閱讀
- 淺析Micro LED技術(shù)的原理、優(yōu)勢(shì)及未來展望 1.9w次閱讀
- 輕觸自鎖開關(guān)電路圖大全(自鎖互鎖電子開關(guān)/雙自鎖輕觸開關(guān)電路) 9.5w次閱讀
- micro led技術(shù)原理及簡(jiǎn)介(microled功能特性和優(yōu)勢(shì)及發(fā)展前景) 14.1w次閱讀
- micro usb接口定義圖_micro usb接線圖 75.2w次閱讀
- mfc程序執(zhí)行流程小結(jié),MFC程序的執(zhí)行順序 9579次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論