文章目录
本着能跑就行的原则,这个博文主要是教你部署到linux服务器上面的几种方式,go语言的项目是打包后不需要go环境也能跑的。
本人主机用的win10,操作系统用的是centos7.9,远程连接主机软件用的xsell,文件上传下载工具用的是xftp,服务器是在阿里云买的。
国内的GPT用的是kimi和通义千问。如果你用的是乌班图操作系统,你就可以复制粘贴命令问gpt,这个命令在乌班图是什么。
一、安装go语言环境的方式
1.下载go安装包,解压,配置环境变量
在这里要注意,我们的项目都是本地开发好的,你要选择的安装包要适应你的go.mod的文件,言外之意,选择合适的安装包你不需要改go.mod了。我们下载到/user/local/src里面
(有可能你下载不下来,如果下载不下来,请直接去官网下载安装包到本地之后,使用文件上传工具上传到服务器)
wget https://golang.google.cn/dl/go1.21.5.linux-amd64.tar.gz -P /usr/local/src
解压到/user/local里面
tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
配置环境变量
vim etc/profile # 输入以下信息并保存 export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin
重新加载,让环境变量生效
source /etc/profile
验证
go version
2.压缩项目上传到服务器并解压
如果你的项目使用了,MySQL,Redis,请在你的服务器上也安装这些东西,并且在代码中也修改对应的账户和密码以适应你的服务器。
我的建议是,使用宝塔或者1panel直接安装就行了。1panel因为是使用docker来管理这些应用,所以,你需要配置docker的镜像源。
记得开放1panel对应的端口。宝塔也是
在我们本地找到项目的文件夹,进行压缩,我个人习惯压缩成zip,因为方便解压缩。
压缩工具使用WinRAR或者bandzip等等都行,只要能压缩成zip无论用什么都行。(不会用压缩工具的去百度)
使用文件传输工具进行上传到服务器。
你可以使用任何的FTP工具对文件进行上传,如果电脑上有现成的工具,直接上传就行了,下面的内容是写给没有工具的。因为获取工具的安装包还挺麻烦的。
如果你没有类型XFTP之类的工具,我的建议是使用宝塔,或者1panel这样的运维管理工具,里面自带上传功能。因为我用的是1panel,所以这里只写1panel。
下面是他们的安装网站,你只需要打开这个网站。
选择你自己的操作系统,点击复制。
可视化界面相信你会操作的.我把项目是上传到了/opt目录。
安装解压缩命令
sudo yum install unzip
解压压缩包
unzip 压缩包的名称
3.来到项目的根目录
cd 项目的根目录
这个是我的目录结构,请注意main,go,我项目启动都放在这个文件里面,这个位置很重要,因为我们把项目跑起来需要这个文件.
安装需要的包,输入下面的命令后就需要等待。
go mod tidy
3.开放端口,运行项目
在运行之前,你需要确保几件事情
1.你的gin服务端口开放了吗?端口开放一般直接去你买服务器的官网,里面有控制台,找到安全组,端口公网开放即可。这个要么百度,要么等我再写一篇吧。
2.用到MySQL了吗?用到了的话,服务器的MySQL安装好了吗?代码里面的连接MySQL的代码和密码改成服务器的了吗?MySQL的端口对外开放了吗?如果你使用1panel,应用里面的端口对外开放也要打开。
3.用到Redis了吗?用到Redis的话,服务器的redis安装好了吗?代码里面的连接redis的密码改了吗?端口对外开放了吗?如果你使用1panel,应用里面的端口对外开放也要打开。
4.go真的安装好了吗?验证了吗?跟你的项目适配吗?运行需要的包都安装好了吗?
5.代码有没有bug?项目在本地能不能正常的运行?
如果以上都OK的话,继续进行下面的东西。
nohup go main.go&
二、打包的方式
1.在项目的根目录下输入以下命令
set GOOS=linux set GOARCH=amd64 go build
需要注意的是,配置文件是不会被打包的,所以在使用viper加载配置文件的时候,注意好路径问题。
2.把打包好的文件上传到服务器
步骤跟上面一样,这里就不写了
3.部署网站
这里使用的宝塔部署,因为方便,能顺便解决后面ssl证书问题
(怎么安装宝塔就不说了,百度,然后安装完后记得开放对应的端口以及把面板账户登录信息给保存下来方便使用)
点击网站
点击go项目,点击添加go项目
4.ssl证书
上面添加完后,就有这个设置,点击设置
点击ssl,点击 let’s Encrypt,点击我们的域名,点击申请证书,就能解决ssl证书的问题了