Go項(xiàng)目在linux服務(wù)器的部署詳細(xì)步驟
大致步驟
以阿里云服務(wù)器為例
1.擁有一臺(tái)阿里云服務(wù)器
2.使用阿里云控制臺(tái)打開(kāi)要使用的端口
3.在Linux上安裝MySQL數(shù)據(jù)庫(kù)
4.安裝Go的運(yùn)行環(huán)境
5.部署項(xiàng)目到服務(wù)器,并啟動(dòng)
6.使用git管理服務(wù)器上的代碼,保證實(shí)時(shí)更新
1.使用阿里云控制臺(tái)打開(kāi)要使用的端口
找到阿里云實(shí)例,打開(kāi)安全組

新建入方向的端口信息,我們這里手動(dòng)添加,這里操作是要讓別人訪問(wèn)你服務(wù)器的時(shí)候,所用到的端口開(kāi)放

2.在Linux上安裝MySQL數(shù)據(jù)庫(kù)
這里我們使用docker鏡像的方法安裝數(shù)據(jù)庫(kù)
docker pull mysql:8.0.29解釋 docker pull 要安裝什么東西:安裝的版本
安裝的版本不寫(xiě)會(huì)默認(rèn)是最新版
下載好之后就可以查看鏡像了
docker images

可以看到這里面有我們要下載的鏡像
下一步就是要運(yùn)行鏡像
-v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=123456\ -d mysql:8.0.29
參數(shù)解讀
docker run 3306:3306 --name mysql\ #將容器3306端口映射到主機(jī)的3306端口 -v /mydata/mysql/log:/var/log/mysql\ #將配置文件掛載到/mydata/mysql該文件夾下 -v /mydata/mysql/data:/var/lib/mysql\ #將日志文件掛載到/mydata/mysql該文件夾下 -v /mydata/mysql/conf:/etc/mysql\ #將配置文件掛載到/mydata/mysql該文件夾下 -e MYSQL_ROOT_PASSWORD=123456\ #初始化root用戶的密碼為123456 -d mysql:8.0.29 #開(kāi)機(jī)啟動(dòng)mysql
創(chuàng)建成功后,查看實(shí)例

啟動(dòng)實(shí)例
docker start mysql #這里的mysql可以使用別名,也可以使用所創(chuàng)建出實(shí)例的id
運(yùn)行MySQL后可以使用Datagrip、navicat等客戶端工具嘗試連接MySQL,如果連接不上可以查看自己的服務(wù)器的安全組,是否開(kāi)放了3306端口。連接后就可以創(chuàng)建自己的數(shù)據(jù)庫(kù),跟在本地操作數(shù)據(jù)庫(kù)方法相同。
3.安裝Go的運(yùn)行環(huán)境
使用xftp工具將Go的SDK壓縮包上傳到服務(wù)器,建議上傳到home目錄下這里注意Go的SDK千萬(wàn)不要下載錯(cuò)了

上傳后進(jìn)行解壓
tar -zxvf 你的壓縮包文件名
解壓完成后去配置環(huán)境變量
vim /etc/profile
打開(kāi)etc下的profile文件
export GOROOT=/usr/local/go export GOPATH=/usr/local/gopath export PATH=$PATH:$GOROOT/bin
/usr/local是你Go的SDK解壓到的文件夾路徑保存后執(zhí)行profile文件,使之生效,使用source命令(source命令:依次執(zhí)行文件所有語(yǔ)句)
source /etc/profile
使用go version測(cè)試是否配置完成

4.將Go項(xiàng)目部署到服務(wù)器
首先使用Goland將main文件打包,打包成適合在服務(wù)器上運(yùn)行的文件
可以先在控制臺(tái)執(zhí)行下面這個(gè)命令
修改命令為 go env -w GOOS=linux
將main文件打包成二進(jìn)制文件
在項(xiàng)目根目錄下輸入 go build main.go
將你的main二進(jìn)制文件和config.conf文件上傳到你的項(xiàng)目目錄下,就是說(shuō)你的main.go文件再哪個(gè)目錄,你的main就要在哪個(gè)目錄
切換到main所在的目錄
設(shè)置文件權(quán)限
chmod 777 main //我這里直接給最高權(quán)限 這個(gè)就是給main文件權(quán)限 然后你的main會(huì)變成綠色
運(yùn)行并制定運(yùn)行環(huán)境和創(chuàng)建日志文件
nohup ./main -c config.dev.yaml > start.log 2>&1 &
查看進(jìn)程
ps -ef|grep main
正常啟動(dòng)

查看日志文件有沒(méi)有報(bào)錯(cuò)
tail -f start.log
總結(jié)
到此這篇關(guān)于Go項(xiàng)目在linux服務(wù)器的部署詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Go在linux服務(wù)器的部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang實(shí)現(xiàn)單元測(cè)試中的接口層
接口層主要負(fù)責(zé)的就是請(qǐng)求的處理,最常見(jiàn)的就是?HTTP?請(qǐng)求的處理。這篇文章主要為大家介紹了Golang如何實(shí)現(xiàn)單元測(cè)試中的接口層,需要的可以參考一下2023-03-03
詳解golang各種類(lèi)型是如何進(jìn)行比較的
在日常開(kāi)發(fā)中,比較操作是最常用的基本操作之一,可以用來(lái)判斷變量之間是否相等或者對(duì)應(yīng)的大小關(guān)系,比較操作對(duì)于排序、查找和集合數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)至關(guān)重要,本文將深入解析golang各種類(lèi)型是如何進(jìn)行比較的,需要的朋友可以參考下2024-01-01
Go語(yǔ)言實(shí)現(xiàn)運(yùn)算符重載的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Go語(yǔ)言實(shí)現(xiàn)運(yùn)算符重載的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-09-09
Go如何實(shí)現(xiàn)HTTP請(qǐng)求限流示例
本篇文章主要介紹了Go如何實(shí)現(xiàn)HTTP請(qǐng)求限流示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%
這篇文章主要介紹了go語(yǔ)言time.After優(yōu)化后性能提升34%內(nèi)存減少67%實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
go語(yǔ)言中切片Slice與數(shù)組Array對(duì)比以及panic:?runtime?error:?index?out?
go語(yǔ)言中數(shù)組與其他語(yǔ)言有在顯著的不同,包括其不能夠進(jìn)行添加,以及值拷貝的特性,下面這篇文章主要給大家介紹了關(guān)于go語(yǔ)言中切片Slice與數(shù)組Array對(duì)比以及panic:?runtime?error:?index?out?of?range問(wèn)題解決的相關(guān)資料,需要的朋友可以參考下2022-07-07

