golang下载安装+宝塔部署

文章目录

    • 前言
    • 下载安装
    • 注意事项
    • 打包部署
      • 开发环境重新build项目(mac环境的打包语法)
      • 部署到服务器
        • 手动打包
        • 使用makefile打包
        • 服务的运行
    • 宝塔上配置web服务

前言

这是基于宝塔来进行部署的golang应用,golang用1.19.2版本

下载安装

  • 下载:

下载地址:https://studygolang.com/dl
如下截图,有macos,linux, windows,我电脑是基于x64的体系结构,所以都是以amd64的。

golang下载安装+宝塔部署_第1张图片

  • 安装
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz
  • 设置环境变量
export PATH=$PATH:/usr/local/go/bin
或者到/root/.bash_profile,或 /etc/profile去设置环境变量
PATH=$PATH:/usr/local/go/bin
  • 设置go环境变量
//开启模块
go env -w GO111MODULE="on"

如果是本地或国内服务器,代理改下,国外服务器还是保持不变
go env -w GOPROXY="https://goproxy.cn,direct"

国外服务器
go env -w GOPROXY="https://proxy.golang.org,direct"

注意事项

  • go项目运行之后,修改.env文件不会立即生效,需要重启go服务才会生效
  • go项目运行之后,修改config.ini配置文件会立即生效,无需重启go服务
    GOOS=darwin GOARCH=amd64 go build -o [app_name] [-v] [./crontab.go] app_name后面带上-v ./xxx.go表示以xxx.go作为启动文件
  • mac上打包的程序,目前只能在linux上才能执行成功。

打包部署

开发环境重新build项目(mac环境的打包语法)

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o [app_name]
  • 查找指定的端口的进程的端口号
netstat -tunlp | grep 端口号
  • 结束之前的进程,开启新进程启动go服务
    • PID是要结束的进程
    • app_name是二进制文件名
    • 使用&&同时执行两条命令,避免服务中断
kill -15 PID && nohup ./main >> nohup.log 2>&1 &

部署到服务器

手动打包
  • windows
set CGO_ENABLED=0 //禁用CGO
set GOOS=linux //目标平台为linux
set GOARCH=amd64 //目标处理器架构是amd64
go build -o name //编译可执行文件到当前目录 (-o:自定义服务名)
  • mac+linux版本
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app_name -v xxxx.go
  • 例子:
生成web服务
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o data-collect-web -v main.go

生成计划任务服务
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o data-collect-crontab -v crontab.go
使用makefile打包

在项目根目录中创建一个makefile文件,执行make命令

make help //make自定义命令说明
make build-web //在根目录生成data-collect-web服务命令
make build-crontab: //在根目录生成data-collect-crontab服务命令并记录到日志

golang下载安装+宝塔部署_第2张图片

makefile的源码:

#帮助说明:
help:
	echo "build-web: 在根目录生成data-collect-web服务命令\r\nbuild-crontab: 在根目录生成data-collect-crontab服务命令"

#打包web项目
build-web:
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o data-collect-web -v main.go; \
	#nohup ./data-coleter-web >> nohup-web.log 2>&1 &	#由于是宝塔上启动服务为了避免冲突,就先注释掉

#到计划任务项目
build-crontab:
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o data-collect-crontab -v crontab.go; \
	nohup ./data-collect-crontab >> /www/wwwlogs/nohup-crontab.log 2>&1 &
服务的运行
  • 后台常驻服务运行方式
进到服务相关目录
nohup ./data-coleter-web >> nohup-web.log 2>&1 & 

计划任务的话,需要先杀到老的进程,再启动服务
nohup ./data-collect-crontab >> /www/wwwlogs/nohup-crontab.log 2>&1 &	#注意日志目录要有777权限

宝塔上配置web服务

  • 创建项目
  1. 配置服务+端口
    golang下载安装+宝塔部署_第3张图片

  2. 配置域名
    golang下载安装+宝塔部署_第4张图片

  3. 配置证书
    golang下载安装+宝塔部署_第5张图片

  • 服务重启

在修改了项目代码后,需要重新打包,这时需要重启服务
golang下载安装+宝塔部署_第6张图片golang下载安装+宝塔部署_第7张图片
golang下载安装+宝塔部署_第8张图片

你可能感兴趣的:(golang相关,golang,开发语言,后端)