資料介紹
軟件簡介
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度插板無卷邊圖紙 15次下載
- MICRO USB 5P前插后貼有住無卷邊5.9圖紙 12次下載
- MICRO USB四腳插件無卷邊原理圖 9次下載
- MICRO USB四腳插件卷邊圖紙 13次下載
- MICRO USB全貼殼長5.5無卷邊圖解 9次下載
- MICRO USB全貼殼長5.0卷邊圖紙 13次下載
- MICRO USB小牛角無卷邊原理圖 9次下載
- MICRO USB小牛角無卷邊圖紙 6次下載
- MICRO SIM翻蓋式SNO-1340原理圖 18次下載
- MICRO SIM CARD 8P+1 1.24H直插式原理圖 22次下載
- Micro高頻頭使用說明書 1次下載
- 基于JJBoover的遠程控制ARDUNO自平衡機器人資料下載 2次下載
- 基于多通道自注意力機制的電子病歷架構 75次下載
- 用Delphi實現基于SAPI的電腦語音控制應用程序
- 怎么通過FPGA采取SD模式實現Micro SD卡的驅動 4k次閱讀
- nr_micro_shell介紹及使用方法 4.1k次閱讀
- 氣動執行器的組成_氣動執行器選型 4.7k次閱讀
- dfrobot小創客輕松玩轉micro:bit介紹 2.4k次閱讀
- 微雪電子|Micro:bit帶電池簡介 3k次閱讀
- 微雪電子BBC Micro:Bit學習板簡介 2.7k次閱讀
- 微雪電子Micro:bit傳感器介紹 5.2k次閱讀
- 微雪電子micro:bit接口擴展板簡介 3.5k次閱讀
- 微雪電子bit|micro:bit喇叭擴展板簡介 3.2k次閱讀
- 微雪電子Micro SD卡 存儲模塊簡介 3.6k次閱讀
- 淺析Micro LED技術的原理、優勢及未來展望 2w次閱讀
- 輕觸自鎖開關電路圖大全(自鎖互鎖電子開關/雙自鎖輕觸開關電路) 10w次閱讀
- micro led技術原理及簡介(microled功能特性和優勢及發展前景) 14.3w次閱讀
- micro usb接口定義圖_micro usb接線圖 77.6w次閱讀
- mfc程序執行流程小結,MFC程序的執行順序 10k次閱讀
下載排行
本周
- 1新一代網絡可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數據手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數據手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協議電壓誘騙控制器IC技術手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論