1、打开官网 golang.google.cn/dl/ 获取下载环境 golang.google.cn/dl/go1.18.3…
2、下载并解压:
cd /www/server && wget https://golang.google.cn/dl/go1.18.3.linux-amd64.tar.gz
3、加压到指定文件夹
mkdir golang
tar -xzvf go1.18.3.linux-amd64.tar.gz -C golang
4、添加环境变量,使用 打开/etc/profile 文件,在最底部添加:
vi /etc/profile
export GOROOT=/www/server/golang
export GOBIN=$GOROOT/bin
export GOPKG=$GOROOT/pkg/tool/linux_amd64
export GOARCH=amd64
export GOOS=linux
export GOPATH=/www/wwwroot/golang
export PATH=$PATH:$GOBIN:$GOPKG:$GOPATH/bin
5、让profile文件生效
source /etc/profile
6、执行检查:
go version
7、若返回 go version go1.18.3 linux/amd64 则表示成功,继续创建GOROOT目录:
mkdir /www/wwwroot/golang
8、在 golang 目录先新建 test.go文件,test.go文件内容:
package main
import "fmt"
func main() {
fmt.Println("Hello, Word!")
}
shell运行
go run test.go
成功输出了 Hello,Word!
9、宝塔定时任务,脚本内容 使用
go run /www/wwwroot/golang/test.go
提示 go: command not found,需要root账号登录,修改 /etc/sudoers
vim /etc/sudoers
加入
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
后面加入 /:/www/server/golang/bin
修改脚本内容 使用
sudo go run /www/wwwroot/golang/test.go
正常运行
10、解决国外包管理无法访问,配置国内访问的代理地址:goproxy.cn
go env -w GOPROXY=https://goproxy.cn
go env -w GO111MODULE=on
在该项目目录下,初始化Go moudle,运行下面命令
go mod init xxx //xxx代表文件夹名
成功提示,go.mod文件创建成功。
可以使用go env 命令查看配置详情
go env
11、windows环境打包linux运行go程序
在 main.go 文件夹下打开 cmd
如果是amd架构:
set GOARCH=amd64
set GOOS=linux
go build main.go
如果是arm架构:
set GOARCH=arm64
set GOOS=linux
go build main.go
在 main.go 文件夹下执行
go build main.go
12、上传Golang二进制文件到Linux服务器
将该文件放入linux系统某个文件夹下赋予权限,假如文件名是main
chmod 777 main
最后执行 ./main 就行了,如果想让项目在后台执行:执行 nohup ./main & ,这样就可以程序在后台运行了
13、更新程序的方法如下
1、查找进程
ps -aux|grep ./main
2、杀死旧进程
kill -9 (进程pid)
3、重新启动进程
nohup ./可执行文件名 &
14、 解决服务端口占用问题
1、使用 netstat -tulpn 查看 端口使用情况
netstat -tulpn
2、找到被占用的端口(确认该端口对应的服务是即将启用的服务)
1. # 以3000端口为例
1. netstat -tulpn | grep 3000
3、释放对应端口
1. # 6012为对应的PID
1. kill -9 6012
4、重新启动服务成功