欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > Windows下Golang与Nuxt项目宝塔部署指南

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

2025/4/25 22:12:14 来源:https://blog.csdn.net/weixin_53538280/article/details/147429191  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词