如何在liunx环境下部署goweb项目

本文介绍了如何将Go应用部署到Linux服务器,包括从macOS环境拉取代码、交叉编译生成二进制文件,以及在Linux服务器上进行部署和启动应用的详细步骤。重点在于Go的交叉编译和使用nohup后台运行应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Go部署到服务器相对其他语言来说很简单,只需要将所有应用代码打包成一个二进制文件即可,不需要像额外的运行环境,例如向Java还需要jvm。

环境:Linux操作系统,centos7

本机环境:macOS,goland

1、拉取最新代码

git clone https://github.com/你们自己管理代码的仓库

2、构建应用

  • 首先看一下自己的开发环境 go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/mac/Library/Caches/go-build"
GOENV="/Users/mac/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/mac/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/mac/go"
GOPRIVATE=""
GOPROXY="https://goproxy.io,https://goproxy.cn,https://goproxy.io/zh/,https://proxy.golang.com.cn,direct"
GOROOT="/Users/mac/go/go1.17"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/mac/go/go1.17/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.17"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/mac/go/src/project/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/rt/vqv9n31n3nxbdqnf5333nftr0000gn/T/go-build3049549800=/tmp/go-build -gno-record-gcc-switches -fno-common"

  • 第二步:编译可执行文件(交叉编译)

64位操作系统的架构就是amd64,M1就是M1的,goos是编译之后运行在哪的环境

Mac 下编译 Linux 和 Windows 64项目文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows 下编译 Mac 和 Linux 64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build 

生成一个project可执行文件

3、部署到服务器上

  • 将文件拖拽到自己的项目目录下,例如
    请添加图片描述

  • 编写start.sh脚本

    kill -9 "$(pgrep -f project)" #杀死之前的进程
    chmod +x /home/project/place/server/project # 给目标文件加权
    nohup /home/project/place/server/project -c /home/project/place/server/config.dev.yaml > start.log  2>&1 & # 使用nohup后台运行
    
  • 之后运行一下sh脚本即可

    cd /home/project/place/server
    sh start.sh
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值