当前位置: 首页 > news >正文

Windows下Golang与Nuxt项目宝塔部署指南

在Windows下将Golang后端和Nuxt前端项目打包,并使用宝塔面板部署的步骤如下


一、Golang后端打包

交叉编译为Linux可执行文件
在Windows PowerShell中执行:

  1. powershell复制下载
$env:GOOS = "linux"
$env:GOARCH = "amd64"
go build -o app-linux main.go

  1. 压缩文件


二、Vue前端打包

安装依赖并构建
在Windows本地项目根目录执行:

bash复制下载
npm install
npm run build       第一种
npm run generate    第二种

这个之后会生成.nuxt黄色的文件

第二种打包指令为例
npm run generate

如果是用generate,需要更改下nuxt.config.js配置文件的路径,生成一个dist文件,类似Vue

如果前端执行打包命令npm run build/genergate报错

npm命令无法执行

查看自己是否安装了node,需要编辑环境变量

需要自行下载官网的安装包,根据教程配置系统环境变量,这里就不延申了。

检查是否安装成功

node -v

npm -v


三、宝塔面板部署

1. 上传文件到服务器
  • 登录宝塔面板,进入 文件管理,上传两个压缩包到服务器
  • 解压文件

2. 部署前端
  • 添加静态网站
    在宝塔面板

3. 部署后端

宝塔面板部署文档

4. 配置Nginx(可选)

在网站设置的 配置文件 中添加API路由转发:

location /api/ {proxy_pass http://127.0.0.1:8080/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;
}
5. 开放端口

6.使用docker 部署(可选)

【Docker 模块】使用手册 - Linux面板 - 宝塔面板论坛

按照教程拉取需要的镜像和部署自己的容器

在上传的文件夹新增两个文档,一个是dockerfile,一个是docker-compose

然后打开宝塔面板的终端,cd 文件目录进入文件,执行命令

进入终端

容器目录

/etc/mysql/my.cnf
/var/lib/mysqldocker-entrypoint.shcom.docker.compose.config-hash=
com.docker.compose.container-number=1
com.docker.compose.depends_on=
com.docker.compose.image=
com.docker.compose.oneoff=False
com.docker.compose.project=test
com.docker.compose.project.config_files=/www/wwwroot/docker-compose.yml
com.docker.compose.project.working_dir=/www/wwwroot/test
com.docker.compose.service=mysql
com.docker.compose.version=2.27.1MYSQL_ROOT_PASSWORD=
TZ=Asia/Shanghai
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
GOSU_VERSION=1.17
MYSQL_MAJOR=8.0
MYSQL_VERSION=8.0.36-1.el8
MYSQL_SHELL_VERSION=8.0.36-1.el8

查看数据库运行状态

检测mysqk当前占用的端口号

数据库连接错误:错误代码1045
2025-04-22T14:20:35.175+0800    info    cmd/root.go:120 config  {"Using config file:": "/www/wwwroot/qibuDoc/server/app.toml", "config": {"Level":"debug","LogEncoding":"console","Logger":{"Filename":"","MaxSizeMB":10,"MaxBackups":10,"MaxDays":30,"Compress":true},"Port":8881,"Database":{"DSN":"root:sevenstep0628@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true","ShowSQL":false,"MaxIdle":10,"MaxOpen":10,"Prefix":"mnt_"},"Redis":{"Addr":"localhost:6379","Password":"","DB":1,"PoolSize":200,"MinIdleConns":10,"MaxIdleConns":100,"ConnMaxIdleTime":"3m"},"JWT":{"Secret":"qibu","ExpireDays":365}}}
2025-04-22T14:20:35.176+0800    error   model   model/init.go:107       NewDBModel      {"error": "Error 1045: Access denied for user 'root'@'localhost' (using password: YES)", "config": {"DSN":"root:sevenstep0628@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true","ShowSQL":false,"MaxIdle":10,"MaxOpen":10,"Prefix":"mnt_"}}
moredoc/model.NewDBModelE:/worksapce/qibu_work/moredoc/moredoc-master/model/init.go:107
moredoc/service.RunE:/worksapce/qibu_work/moredoc/moredoc-master/service/serve.go:56
moredoc/cmd.runServerE:/worksapce/qibu_work/moredoc/moredoc-master/cmd/root.go:274
github.com/mnt-ltd/daemore.(*Daemon).RunE:/worksapce/qibu_work/goPath/pkg/mod/github.com/mnt-ltd/daemore@v0.0.0-20240227053424-d57afb9f5e67/daemore.go:65
2025-04-22T14:20:35.176+0800    fatal   service/serve.go:58     NewDBModel      {"error": "Error 1045: Access denied for user 'root'@'localhost' (using password: YES)"}
moredoc/service.RunE:/worksapce/qibu_work/moredoc/moredoc-master/service/serve.go:58
moredoc/cmd.runServerE:/worksapce/qibu_work/moredoc/moredoc-master/cmd/root.go:274
github.com/mnt-ltd/daemore.(*Daemon).RunE:/worksapce/qibu_work/goPath/pkg/mod/github.com/mnt-ltd/daemore@v0.0.0-20240227053424-d57afb9f5e67/daemore.go:65
om.docker.compose.config-hash=495ea4852518e4dfc1e3b3c50ff0a38035f2cd82f67263948bb259c6cfecec47
com.docker.compose.container-number=1
com.docker.compose.depends_on=qibudoc-mysql:service_started:false,qibudoc-redis:service_started:false
com.docker.compose.image=sha256:d4adc55fc9708944836bfef4e4189b3c1ae8a7f6407e00126f41858c2431ed1c
com.docker.compose.oneoff=False
com.docker.compose.project=qibudoc-test
com.docker.compose.project.config_files=/www/wwwroot/test/qibudoc-test/docker-compose.yml
com.docker.compose.project.working_dir=/www/wwwroot/test/qibudoc-test
com.docker.compose.service=qibudoc-server
com.docker.compose.version=2.27.1
org.opencontainers.image.ref.name=ubuntu
org.opencontainers.image.version=22.04MOREDOC_REDIS_ADDR=qibudoc-redis:6379
MOREDOC_REDIS_PASSWORD=qibu
MOREDOC_REDIS_DB=0
MOREDOC_DATABASE_DSN=root:qibudoc@tcp(qibudoc-mysql:3306)/qibudoc?charset=utf8mb4&loc=Local&parseTime=true
MOREDOC_JWT_SECRET="qibu"
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

重新指定

docker run -d --name doc-mysql -p 3306:3306 -v /path/to/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD= 123456mysql:8.0.36

出错,定位到文件,执行不了

root@hcss-ecs-1d46:/www/wwwroot/qibuDoc/server# ./qibudoc serve
2025-04-22T14:34:57.741+0800    info    cmd/root.go:120 config  {"Using config file:": "/www/wwwroot/qibuDoc/server/app.toml", "config": {"Level":"debug","LogEncoding":"console","Logger":{"Filename":"","MaxSizeMB":10,"MaxBackups":10,"MaxDays":30,"Compress":true},"Port":8881,"Database":{"DSN":"root:sevenstep0628@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true","ShowSQL":false,"MaxIdle":10,"MaxOpen":10,"Prefix":"mnt_"},"Redis":{"Addr":"localhost:6379","Password":"","DB":1,"PoolSize":200,"MinIdleConns":10,"MaxIdleConns":100,"ConnMaxIdleTime":"3m"},"JWT":{"Secret":"qibu","ExpireDays":365}}}
2025-04-22T14:34:57.743+0800    error   model   model/init.go:107       NewDBModel      {"error": "Error 1045: Access denied for user 'root'@'localhost' (using password: YES)", "config": {"DSN":"root:sevenstep0628@tcp(localhost:3306)/moredoc?charset=utf8mb4&loc=Local&parseTime=true","ShowSQL":false,"MaxIdle":10,"MaxOpen":10,"Prefix":"mnt_"}}
moredoc/model.NewDBModelE:/worksapce/qibu_work/moredoc/moredoc-master/model/init.go:107
moredoc/service.RunE:/worksapce/qibu_work/moredoc/moredoc-master/service/serve.go:56
moredoc/cmd.runServerE:/worksapce/qibu_work/moredoc/moredoc-master/cmd/root.go:274
github.com/mnt-ltd/daemore.(*Daemon).RunE:/worksapce/qibu_work/goPath/pkg/mod/github.com/mnt-ltd/daemore@v0.0.0-20240227053424-d57afb9f5e67/daemore.go:65
2025-04-22T14:34:57.743+0800    fatal   service/serve.go:58     NewDBModel      {"error": "Error 1045: Access denied for user 'root'@'localhost' (using password: YES)"}
moredoc/service.RunE:/worksapce/qibu_work/moredoc/moredoc-master/service/serve.go:58
moredoc/cmd.runServerE:/worksapce/qibu_work/moredoc/moredoc-master/cmd/root.go:274
github.com/mnt-ltd/daemore.(*Daemon).RunE:/worksapce/qibu_work/goPath/pkg/mod/github.com/mnt-ltd/daemore@v0.0.0-20240227053424-d57afb9f5e67/daemore.go:65

解决方案:

新建数据库,重新设置数据库密码,再执行连接命令

部署成功:下面是打印的日志

显示后端运行的监听端口号,则运行成功,类似再idea的窗口运行项目。

四、验证部署


遇到的部分问题

二进制文件无法执行
通过SSH进入服务器,执行:

  1. bash复制下载chmod +x /www/wwwroot/backend/app-linux
  2. 端口占用
    修改后端代码中的监听端口,或在PM2中重启进程。


本文同步在我的博客 O(∩_∩)O

相关文章:

  • L1-4、如何写出清晰有目标的 Prompt
  • vscode python 代码无法函数跳转的问题
  • 55、Spring Boot 详细讲义(十一 项目实战)springboot应用的登录功能和权限认证
  • 小刚说C语言刷题——1031 温度转化
  • Ubuntu-Linux中vi / vim编辑文件,保存并退出
  • 云账号安全事件分析:黑客利用RAM子账户发起ECS命令执行攻击
  • 联易融科技:以科技赋能驱动经营反转与价值重估
  • 可吸收聚合物:医疗科技与绿色未来的交汇点
  • K8s:概念、特点、核心组件与简单应用
  • 方案精读:华为智慧园区解决方案【附全文阅读】
  • [创业之路-380]:企业法务 - 企业经营中,企业为什么会虚开増值税发票?哪些是虚开増值税发票的行为?示例?风险?
  • SpringCloud组件—Eureka
  • 【sylar-webserver】重构 增加内存池
  • [盈达科技】GEO(生成式引擎优化)实战指南:从认知重构、技术落地到内容突围的三维战略
  • jQuery — 总结
  • 树莓派超全系列教程文档--(39)树莓派config.txt旧版选项
  • vs2017中,将CMake构建目录设置在项目目录下
  • Docker 中运行 JAR 文件
  • 在任意路径下简单开启jupyter notebook
  • 瓦瑟斯坦差分隐私中命题7对总变差TV的应用
  • 人民日报刊文:美国滥施关税及中国反制措施的法理视角透析
  • 泽连斯基:乌英法美将在伦敦讨论停火事宜
  • 国家新闻出版署:4月共118款国产网络游戏获批
  • 服务业扩大开放,金融、医疗等多领域明确155项试点任务
  • 著名作家、中国艺术研究院原常务副院长曲润海逝世
  • 上海群文创作大检阅,102个节目角逐群星奖