首先省略編寫代碼的過程,成功在本地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啦
參考:
https://blog.csdn.net/u013474104/article/details/78638710
https://blog.csdn.net/taoerchun/article/details/92787743
https://www.jianshu.com/p/bfaba9b6d46d
https://www.cnblogs.com/jiangyao/archive/2011/01/26/1945570.html
https://blog.csdn.net/weixin_42506905/article/details/90339253
https://blog.csdn.net/u013172063/article/details/52440384