首先省略编写代码的过程,成功在本地ip测试成功后,将监听的ip和端口改为服务器的

  1. 首先你要知道需要配置的服务器的构架,一般是amd64,arm,可以在服务器里输入uname -a查看
  2. 然后进入目标项目目录,可以直接在goland终端中,如
  3. go语言搭建一个服务器 部署go语言程序到linux服务器_.net


  4. 也可以cmd进入
  5. 依次输入set GOOS=linux, //这是生成对应系统打包好的程序(可以直接运行的,如果不改就默认是win,生成exe文件
    set GOARCH=arm //改为上面查找的服务器构架
    go build main.go //build 后面是你的文件
    然后会报错cannot find package "golang.org/x/sys/unix",这是因为没有下打包需要的库
  6. 下载golang/sys.git包
  7. 首先设置代理go env -w GOPROXY=https://goproxy.cn //你懂的
  8. 然后go env -w GO111MODULE=on
  9. 然后拉包go get github.com/golang/sys.git //也可以git clone,或者直接下载,但是直接下载zip文件是没有依赖包的
  10. 如果golan里直接出现这个
  11. go语言搭建一个服务器 部署go语言程序到linux服务器_go语言搭建一个服务器_02


  12. 那是因为goland配置了git,你可以直接点install,
  13. 然后在项目src里github.com目录找到找到下载的包sys,把它移动到golang.org\x,没有就自己建,如下
  14. go语言搭建一个服务器 部署go语言程序到linux服务器_服务器_03


  15. 然后在go build main.go,发现成功了
  16. go语言搭建一个服务器 部署go语言程序到linux服务器_服务器_04

  17. 接下来就是把生成的文件传到服务器上
    首先打开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啦