首先省略编写代码的过程,成功在本地ip测试成功后,将监听的ip和端口改为服务器的
- 首先你要知道需要配置的服务器的构架,一般是amd64,arm,可以在服务器里输入
uname -a
查看 - 然后进入目标项目目录,可以直接在goland终端中,如
- 也可以cmd进入
- 依次输入
set GOOS=linux
, //这是生成对应系统打包好的程序(可以直接运行的,如果不改就默认是win,生成exe文件set GOARCH=arm
//改为上面查找的服务器构架go build main.go
//build 后面是你的文件
然后会报错cannot find package "golang.org/x/sys/unix"
,这是因为没有下打包需要的库 - 下载golang/sys.git包
- 首先设置代理
go env -w GOPROXY=https://goproxy.cn
//你懂的 - 然后
go env -w GO111MODULE=on
- 然后拉包
go get github.com/golang/sys.git
//也可以git clone,或者直接下载,但是直接下载zip文件是没有依赖包的 - 如果golan里直接出现这个
- 那是因为goland配置了git,你可以直接点install,
- 然后在项目src里github.com目录找到找到下载的包sys,把它移动到golang.org\x,没有就自己建,如下
- 然后在
go build main.go
,发现成功了 - 接下来就是把生成的文件传到服务器上
首先打开cmd,使用scp命令将文件传过去
使用方法:scp 源文件路径 账户@地址:目的路径
scp C:\Users\zbh\Desktop\1.txt lucas@192.168.11.150:/home/lucas/
6.然后ssh连接服务器,进入刚保存到目录,输入./main
//main改为你的包名
会弹出bash:权限不够
,于是输入chmod 777 main
,再输入./main
,会发现程序执行成功了,
现在你可以打开客户端试一试你的程序效果,如果成功,那我们还有最后一步
7.当你直接关闭ssh时,你会发现程序又停止了,那是因为./main
这个命令只是暂时执行,如果想要一直挂起的话,需要使用nohup命令
输入nohup ./main &
,这就成功了,再输入ps aux|grep main
查看一下进程,发现正在执行,这就成功了,要关闭程序的话,直接kill掉进程就ok啦