PHP 如何优雅的打包部署, 类似 install 那样的

2023-05-18 09:39:58 +08:00
 miaotaizi

用 PHP 给朋友做了个小的管理系统, 只想给他在本地体验体验, 有没有什么简单的安装办法?

只要 点点鼠标下一步的那种

5391 次点击
所在节点    PHP
41 条回复
zhenrong
2023-05-18 11:05:29 +08:00
这个时候就体现 golang 这种能直接打包成二进制输出的优越性了。
cheng6563
2023-05-18 11:16:44 +08:00
windows 跑 docker 自讨没趣吗?
把项目丢进 xampp ,然后一起压缩,告诉客户放哪里点哪个启动。
lzj307077687
2023-05-18 11:31:46 +08:00
win 跑 docker 不还得指导他进 bios 开虚拟化
uplee
2023-05-18 11:35:34 +08:00
https://github.com/crazywhalecc/static-php-cli 打包可以的,然后第一次启动的时候初始化
barbery
2023-05-18 11:43:41 +08:00
phar
brader
2023-05-18 12:06:32 +08:00
这个很简单啊,别搞 docker ,对于小白,只会复杂化,你把项目代码,PHP 环境,都塞在一个文件夹里,告诉他不需要动和关心这个文件夹,在文件夹外面,给他写个 bat 脚本,里面就是启动 php 环境的命令,然后就能跑了
wflanglanglang
2023-05-18 12:07:49 +08:00
对费劲啊 lnmp 打好之后,直接从 git 去拉不好吗?给他写个文档,两行命令的事
BeforeTooLate
2023-05-18 13:08:59 +08:00
vagrant + Puppet 或 Chef
dko
2023-05-18 13:15:19 +08:00
想想当年 asp 时代还有个 netbox ,php 的一般就是 phpstudy ,然后搞个一键脚本 call 浏览器吧。
akiyamamio
2023-05-18 13:16:35 +08:00
用这个吧,别人甚至连 php 环境都不需要了,直接使用

https://www.workerman.net/doc/webman/others/bin.html
brader
2023-05-18 13:24:40 +08:00
简单本地使用的话,这样搞就行了,project/php 放的是 PHP 环境,使用者无需关心 project 目录里面有什么,只需要点击启动脚本就行了
em70
2023-05-18 13:37:04 +08:00
远程协助,直接去部署就好了,如果只是体验或者要给非特定人群用就直接部署服务器 SAAS,有做一键本地化的时间早就手动部署好了
mrpzx001
2023-05-18 14:16:49 +08:00
@akira 楼上提的 static-php-cli/swoole-cli 就是,想来 static-php-cli 的作者也没发多大的财
lisxour
2023-05-18 14:29:42 +08:00
@mrpzx001 这类方案都是有损的,跟直接用 php 跑会有运行差异性,最优雅的方式现在除了将一切环境打包成独立的程序,后台释放再启动服务器,其他方案都多多少少有点问题,和 node 处境是一样的。
QKgf555H87Fp0cth
2023-05-18 14:34:11 +08:00
到时候更新呢?还是要服务器部署。你给他弄本地体验,到时候电脑卡了怪你。
james122333
2023-05-18 19:49:43 +08:00
如果你是使用类 unix 系统 可以很优雅
php 本来就是类 unix 系统使用者使用最爽
最原始最方便的方法就是 chroot 不用 root 权限就是 proot
将资料夹当作根目录 所有东西装在里面 也是安卓系统跑其他 linux 的方法 其中又以 archlinux 最为方便 安装 archlinux 途中就用 pacstrap 把包装进去再 chroot
https://wiki.archlinux.org/title/installation_guide
其它发行版则可以用以下方式配置 arch
https://wiki.archlinux.org/title/Install_Arch_Linux_from_existing_Linux
这也是为什么 arch 其实可以作为 server
好处是配置方便 需要多装什么如数据库其他 php 扩展的包直接 chroot 进去用包管理器装好就可以
还没有 docker 那么麻烦 弄好直接额外写启动脚本用 chroot 启动 server 即可 然后将该脚本与根目录资料夹打包起来就可以
然后对方随便装个好装简便的发行版你再给他少少的说明就可以

请放弃 windows XD
james122333
2023-05-18 19:52:21 +08:00
至于数据库资料可以储存在根资料夹外面
如果你会使用
james122333
2023-05-18 20:01:24 +08:00
当然也可以搭配 docker 这样 docker image 就可以不用更新 每次重新 build image 很花时间的
dcsuibian
2023-05-18 20:25:51 +08:00
软件安装包一般适用于客户端软件,b/s 软件这么干的真的很少
cwcc
2023-05-19 08:46:20 +08:00
如果是 workerman ,swoole ,swow 等类似 cli 项目,可以使用 static-php-cli ,然后写一个简单的启动脚本就可以让它运行(当然还没支持 win 后续会支持)。如果是 fpm 模式的项目,还是推荐要么自己部署服务器上让他体验。如果一定要本地化运行,不使用 docker 的话可以使用 sqlite 作为临时数据库,把 php 官网的 windows 发行版下载下来,写脚本用 php -S 启动一个服务器并自动打开浏览器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/940901

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX