webman打包成二進制,也就是將webman項目代碼與PHP環(huán)境打包成一個二進制文件,無需部署php環(huán)境,也可以讓webman在linux系統(tǒng)里運行起來。
composer require webman/console ^1.2.24
php webman build:bin
將生成的build/webman.bin
拷貝到linux系統(tǒng),執(zhí)行
./webman.bin start
更多webman打包二進制說明參考 webman手冊打包成二進制
如果只是下載可獨立運行的PHP文件,參見 下載靜態(tài)PHP
https://github.com/crazywhalecc/static-php-cli
https://github.com/dixyes/phpmicro
https://github.com/easysoft/phpmicro
https://github.com/walkor/static-php-cli
感謝 easysoft dixyes crazywhalecc 為php社區(qū)做出的貢獻
是不是這樣可以實現(xiàn)給php代碼加密了
各位注意下,如果環(huán)境是用webman的二進制php運行的話,打包的時候會這樣
lighthouse@VM-4-7-debian:~/project/webman/webman$ php webman build:bin
In BuildPharCommand.php line 142:
The 'phar.readonly' is 'On', build phar must setting it 'Off' or exec with 'php -d phar.readon
ly=0 ./webman build:bin'
build:bin [<version>]
lighthouse@VM-4-7-debian:~/project/webman/webman$ php -d phar.readonly=0 ./webman build:bin
Phar packing...
請問執(zhí)行在Arm架構(gòu)的代碼是不是只能在Arm架構(gòu)環(huán)境下打包?
還是說,在x86環(huán)境下打包,在Arm環(huán)境下也能執(zhí)行?
二進制打包發(fā)布到Linux系統(tǒng)運行報錯,不知道哪里出錯了,希望各個大佬幫忙看看
我的疑問是,當業(yè)務的代碼發(fā)生變化后,重新打包應該如何平滑的更新?是直接把老版本的覆蓋掉然后 執(zhí)行restart命令?還是先把服務停掉然后再上傳覆蓋掉老文件,然后再用start啟動一遍呢?這樣的話,在上傳和覆蓋這個時間段服務器就無法服務了。
添加php配置項,請參考:https://github.com/easysoft/phpmicro/wiki/INI-settings 或者是,可以修改vendor/webman/console/src/Commands/BuildBinCommand.php文件,用于自動生成類似ini.bin文件。
// 生成二進制文件
file_put_contents($binFile, file_get_contents($sfxFile));
file_put_contents($binFile, file_get_contents("$this->buildDir/ini_header.bin"), FILE_APPEND);
file_put_contents($binFile, file_get_contents($pharFile), FILE_APPEND);
項目比較大,二進制打包后超過128M了咋整。啟動直接報錯: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 138781738 bytes) in Unknown on line 0
有一個疑問,webman打包二進制運行,從遠程下載的micro.sfx是怎么做到與項目文件結(jié)合后運行,PHP_SAPI等于cli的;我自己打包出的micro.sfx的PHP_SAPI的值等于micro。