首頁 >後端開發 >Golang >golang 如何部署到伺服器?

golang 如何部署到伺服器?

藏色散人
藏色散人原創
2020-01-28 14:31:533821瀏覽

golang 如何部署到伺服器?

如何部署Golang程式到伺服器

」環境

開發環境:mac

生產環境:virtualbox (虛擬機器)下的CentOS 6.8

golang 如何部署到伺服器?

##virtualbox

golang 如何部署到伺服器?

伺服器環境

golang 如何部署到伺服器?

本機開發mac環境go env 參數

##「歷程

go的程式碼

package main
import (
    "fmt"
    "log"
    "net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request)  {
    fmt.Fprintf(w,"您看到我了")
}
func main() {
    http.HandleFunc("/",sayHello)
    log.Println("启动了")
    err := http.ListenAndServe(":9000",nil)
    if err != nil{
        log.Fatal("List 9000")
    }
}

就這麼多,程式碼意思不贅述。

程式碼寫好了,現在需要編譯了,由於是mac環境編譯到linux下運行,所有涉及到跨平台編譯。

編譯程式碼指令

env GOOS=linux GOARCH=386 go build main.go

PS:這裡386是一個很大的坑,這裡是要執行這個打包後程式的平台。如果是linux需要你用 uname -a 來檢視你所執行的linux系統環境。常見的環境一般有 amd64,i386等。

OK,編譯完成後會產生一個 main可執行文件,沒有後綴,這時你只需要把這個文件上傳到你的虛擬機,直接運行就好了。

golang 如何部署到伺服器?直接執行

運行後如果出現上圖的效果,就表示已經運行起來了。這時你打開你的瀏覽器訪問你伺服器的IP:9000就能看到如下圖的內容了

golang 如何部署到伺服器?#瀏覽器圖

#沒錯就這麼簡單,今天是我第一次部署,也是挺驚訝的,不需要任何語言環境,像java程式需要在伺服器安裝java,php需要安裝Apache,PHP等運行環境,go統統不需要,只需要一個linux系統就好,丟上去就可以了。

下面是我當時遇到的坑

1、出現cannot execute binary file

golang 如何部署到伺服器?cannot execute binary file

出現這原因是因為,你的編譯時的運行環境不對,就是上文的386 需要換成你運行的伺服器的環境,你可以用uname -a查看。

2、運作起來了,但無法存取

這問題一般是你伺服器的防火牆,或是網路問題。

你可以先簡單粗暴的把伺服器的防火牆關閉 service iptables stop ,然後再看能否訪問,真實的生產環境,不建議關閉防火牆哈。

如果部署真實的線上跑,肯定還需要一些安全,進程守護啥的,本文只是部署入門,就不探討了。

更多go語言知識請關注PHP中文網

go語言教學

專欄。

以上是golang 如何部署到伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn