webman打包成二进制,也就是将webman项目代码与PHP环境打包成一个二进制文件,无需部署php环境,也可以让webman在linux系统里运行起来。
composer require webman/console ^1.2.24
php webman build:bin
将生成的build/webman.bin
拷贝到linux系统,执行
./webman.bin start
更多webman打包二进制说明参考 webman手册打包成二进制
如果只是下载可独立运行的PHP文件,参见 下载静态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社区做出的贡献
越来越好!
文档终于出来了
大赞
⭐Star
牛逼PLUS++
千呼万唤始出来 ,
建议加个选项:打包后是否自动删除phar 以及 打包前把 bin 给删除一下
是不是这样可以实现给php代码加密了
代码加密和打包二进制是2个不同的概念
@evilk 是不是意味着二进制文件包还是可以解压出源代码
打包二进制只是把
php code
或者phar
文件内容追加到mirco
末尾,可以提取出来的。可以分离出来的,看似二进制,实则 = phar = 源代码 ,并不能有任何的加密保护作用。
要是PHP可以编译后 无法逆向出源码就好了 就像GO 一样
哈哈哈 又增加了个厉害工具
也就是说,可以在win环境下打包?
可以在任何系统打包,只是运行暂时只能在linux下运行
git上自己看 windows max linux 都可以打包,
自己编译的php扩展是不是只能phar打包了
如果想加入其他扩展,可以参考
https://github.com/walkor/static-php-cli
自己编译一下mirco
文件,然后先打包成phar
,再拼接成一个二进制文件即可打包好之后怎么使用nginx代理呢
把静态资源放到和二进制文件同级目录就行了
各位注意下,如果环境是用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...
你配置忘记改了吧 php.ini 把phar.readonly=Off加 文档写了的
不修改配置文件就运行这个命令打包:php -d phar.readonly=0 ./webman build:bin
请问执行在Arm架构的代码是不是只能在Arm架构环境下打包?
还是说,在x86环境下打包,在Arm环境下也能执行?
文档说可以在任何环境打包,但是打包后的职能在linux x86下运行
二进制页面有docker 或者 git上面有 linux arm windows 各种环境都可以打包运行,只是webman 没有做兼容适配,你可以自己打包,或者你也可以使用 swoole-cli 的 docker 修改以下就行了,任何系统环境都可以跑
二进制打包发布到Linux系统运行报错,不知道哪里出错了,希望各个大佬帮忙看看
|---webman.bin
|---public
|---runtime
直接飞起
我的疑问是,当业务的代码发生变化后,重新打包应该如何平滑的更新?是直接把老版本的覆盖掉然后 执行restart命令?还是先把服务停掉然后再上传覆盖掉老文件,然后再用start启动一遍呢?这样的话,在上传和覆盖这个时间段服务器就无法服务了。
我是定义了一个 初始化进程,启动后 curl 链接远程判断:发现新版本1.2 是否更新(y/n)
按y 就下载二进制包覆盖并 kill webman 进程并重新启动webman (脚本操作)
你的初始化的进程是一个shell脚本吗?还是webman里的自定义进程
start.php 里面直接写代码就行了
静态php是不是只能在linux运行啊
giuthub上 已经有arm ,macos,windows 的sfx了 ,下载覆盖到build 里面的 sfx文件就行了 全平台支持