電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>PHPMicro micro自執(zhí)行SAPI

PHPMicro micro自執(zhí)行SAPI

2022-06-29 | zip | 0.04 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 Apache
開發(fā)語言 PHP
操作系統(tǒng) 跨平臺(tái)
軟件類型 開源軟件

軟件簡介

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 clone  sapi/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_.patch Windows 必選 禁用sfx啟動(dòng)時(shí)GetModuleHandle(vcruntime140(d).dll)
win32_.patch 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對于hugepages優(yōu)化導(dǎo)致了生成的文件很大,如果不考慮對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 checkout 
autoreconf -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
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)