使用 GoFrame 打包部署到 Linux,并通过 PM2 启动项目
本文将手把手教你如何将基于 GoFrame 框架开发的项目打包成可执行文件,并部署到 Linux 服务器上,结合 PM2 来管理你的服务进程,做到项目上线后稳定运行、断电重启自动拉起等。
🧱 一、前置准备
1. 环境要求
- 开发环境:GoFrame 项目(本文以 GoFrame v2 为例)
- 编译环境:Go 1.20+
- 目标服务器:Linux x64(如 CentOS / Ubuntu)
- 服务管理工具:PM2(Node.js 环境)
2. 安装 PM2
bash
npm install -g pm2
如果你还没有安装 Node.js,可以先装个 Node.js(建议使用 nvm 安装)。
🚀 二、GoFrame 打包为 Linux 可执行文件
1. 设置 GOOS 和 GOARCH 环境变量
bash
GOOS=linux GOARCH=amd64 go build -o myapp main.go
如果你项目采用的是 GoFrame 标准结构(main.go 是启动入口),这个命令会在当前目录下生成一个 myapp 可执行文件。
✅ 小技巧:你也可以使用
gf build命令:
bash
gf build main.go -a amd64 -s linux -n myapp
这样还能自动打包资源文件,非常适合包含 resource, template, config 等目录的项目。
📦 三、上传可执行文件到 Linux 服务器
使用 scp 或其他工具上传 myapp 文件到你的服务器:
bash
scp ./myapp root@your-server-ip:/home/youruser/myapp/
🧭 四、使用 PM2 启动 GoFrame 服务
虽然 PM2 是 Node.js 世界的神器,但它也可以管理任何可执行程序。
1. 编写启动脚本 ecosystem.config.js
在项目根目录新建 ecosystem.config.js 文件:
js
module.exports = {
apps: [
{
name: "myapp",
script: "./myapp",
watch: false,
autorestart: true,
max_memory_restart: "500M",
env: {
PORT: 8000,
NODE_ENV: "production",
},
},
],
};
2. 启动项目
bash
pm2 start ecosystem.config.js
3. 设置开机启动
bash
pm2 startup
pm2 save
这一步确保服务器重启后,你的项目也能自动拉起。
🔍 五、查看运行状态和日志
bash
复制编辑
pm2 list # 查看所有服务状态
pm2 logs myapp # 查看服务日志
pm2 restart myapp # 重启服务
pm2 stop myapp # 停止服务
🎯 六、总结
本篇文章我们学习了:
- 如何将 GoFrame 项目打包成 Linux 可执行文件;
- 如何上传并在服务器运行;
- 如何使用 PM2 管理 Go 项目的运行生命周期。
结合 PM2 后,我们的 Go 服务不再担心挂掉或意外停止,也无需每次重启手动拉起,非常适合中小型项目部署!
如果这篇文章对你有帮助,欢迎点赞 + 收藏 + 评论讨论 🙌!