部署Go語言程式到Linux伺服器

2020-07-16 10:05:22
通過前面的學習相信大家對Go語言已經有了一定的了解,平時我們都是在本地進行開發偵錯存取的。那要怎麼打包到伺服器上呢?下面通過一個簡單的範例來給大家介紹一下如何把我們寫好的Go語言程式發布到服務 Linux 伺服器上。

下面所示的是我們在 Windows 系統下開發的程式碼:
package main

import (
    "fmt"
    "log"
    "net/http"
)

func sayHello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "C語言中文網")
}
func main() {
    http.HandleFunc("/", sayHello)
    log.Println("啟動成功,可以通過 localhost:9000 存取")
    err := http.ListenAndServe(":9000", nil)
    if err != nil {
        log.Fatal("List 9000")
    }
}
程式碼已經寫好了,現在需要編譯了,由於是 window 環境編譯到 linux 下執行,所有涉及到跨平台編譯。

編譯程式碼命令如下所示:

set GOARCH=amd64   //設定目標可執行程式作業系統構架,包括 386,amd64,arm
set GOOS=linux           //設定可執行程式執行作業系統,支援 darwin,freebsd,linux,windows
go build ./main.go       //打包

注意:使用 Window 10 系統的小夥伴必須用 cmd 工具執行上述命令,不能使用 powershell。

OK,編譯完成後會生成一個 main 可執行檔案,沒有字尾,這時只需要把這個檔案上傳到你的虛擬機器,直接執行就好了。