Go项目在linux服务器的部署详细步骤

 更新时间:2023年09月06日 10:18:06   作者:paterl  
在今天的软件开发中,使用Linux作为操作系统的比例越来越高,而Golang语言则因为其高效、简洁和并发性能等特点,也被越来越多的开发者所青睐,这篇文章主要给大家介绍了关于Go项目在linux服务器的部署详细步骤,需要的朋友可以参考下

大致步骤

以阿里云服务器为例

1.拥有一台阿里云服务器

2.使用阿里云控制台打开要使用的端口

3.在Linux上安装MySQL数据库

4.安装Go的运行环境

5.部署项目到服务器,并启动

6.使用git管理服务器上的代码,保证实时更新

1.使用阿里云控制台打开要使用的端口

找到阿里云实例,打开安全组

新建入方向的端口信息,我们这里手动添加,这里操作是要让别人访问你服务器的时候,所用到的端口开放

2.在Linux上安装MySQL数据库

这里我们使用docker镜像的方法安装数据库

docker pull mysql:8.0.29解释 docker pull 要安装什么东西:安装的版本

安装的版本不写会默认是最新版

下载好之后就可以查看镜像了

docker images

可以看到这里面有我们要下载的镜像

下一步就是要运行镜像

-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

参数解读

docker run 3306:3306 --name mysql\      #将容器3306端口映射到主机的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                         #开机启动mysql

创建成功后,查看实例

启动实例

docker start mysql  #这里的mysql可以使用别名,也可以使用所创建出实例的id

运行MySQL后可以使用Datagrip、navicat等客户端工具尝试连接MySQL,如果连接不上可以查看自己的服务器的安全组,是否开放了3306端口。连接后就可以创建自己的数据库,跟在本地操作数据库方法相同。

3.安装Go的运行环境

使用xftp工具将Go的SDK压缩包上传到服务器,建议上传到home目录下这里注意Go的SDK千万不要下载错了

上传后进行解压

tar -zxvf 你的压缩包文件名

解压完成后去配置环境变量

vim /etc/profile

打开etc下的profile文件

export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath
export PATH=$PATH:$GOROOT/bin

/usr/local是你Go的SDK解压到的文件夹路径保存后执行profile文件,使之生效,使用source命令(source命令:依次执行文件所有语句)

source /etc/profile

使用go version测试是否配置完成

4.将Go项目部署到服务器

首先使用Goland将main文件打包,打包成适合在服务器上运行的文件

可以先在控制台执行下面这个命令

修改命令为
go env -w GOOS=linux

将main文件打包成二进制文件

在项目根目录下输入
go build main.go

将你的main二进制文件和config.conf文件上传到你的项目目录下,就是说你的main.go文件再哪个目录,你的main就要在哪个目录

切换到main所在的目录

设置文件权限

chmod 777 main //我这里直接给最高权限
这个就是给main文件权限 然后你的main会变成绿色

运行并制定运行环境和创建日志文件

nohup ./main -c config.dev.yaml > start.log 2>&1 &

查看进程

ps -ef|grep main

正常启动

查看日志文件有没有报错

tail -f start.log

总结 

到此这篇关于Go项目在linux服务器的部署详细步骤的文章就介绍到这了,更多相关Go在linux服务器的部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 在Colaboratory上运行Go程序的详细过程

    在Colaboratory上运行Go程序的详细过程

    这篇文章主要介绍了在Colaboratory上运行Go程序,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Go语言基础go fmt命令使用示例详解

    Go语言基础go fmt命令使用示例详解

    这篇文章主要为大家介绍了Go语言基础go fmt命令的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Go中的nil切片和空切片区别详解

    Go中的nil切片和空切片区别详解

    这篇文章主要介绍了Go中的nil切片和空切片区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • go中的unsafe包及使用详解

    go中的unsafe包及使用详解

    Unsafe code是一种绕过go类型安全和内存安全检查的Go代码。这篇文章主要介绍了go中的unsafe包,需要的朋友可以参考下
    2019-07-07
  • 深入探究Go语言中for range语句

    深入探究Go语言中for range语句

    为了更加便捷地遍历这些数据类型,Go语言引入了for...range语句,本文将以数组遍历为起点,逐步介绍for...range语句在不同数据类型中的应用,希望对大家有所帮助
    2023-06-06
  • Golang基于sync.Once实现单例的操作代码

    Golang基于sync.Once实现单例的操作代码

    这篇文章主要介绍了golang实现单例的操作代码,本文介绍基于sync.Once的方式来实现单例,熟练掌握这种模式,并理解其底层原理,对大部分人来讲已经完全够用了,需要的朋友可以参考下
    2022-10-10
  • Go get命令使用socket代理的方法

    Go get命令使用socket代理的方法

    由于某些不可描述的原因,国内使用 go get 命令安装某些包的时候会超时导致失败,比如 net 包、 sys 包、 tools 包等。这篇文章给大家介绍go get 命令使用socket 代理的方法,感兴趣的朋友一起看看吧
    2018-10-10
  • 详解go 中的 fmt 占位符

    详解go 中的 fmt 占位符

    这篇文章主要介绍了go 中的 fmt 占位符,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-01-01
  • Go Map并发冲突预防与解决

    Go Map并发冲突预防与解决

    这篇文章主要为大家介绍了Go Map并发冲突预防与解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Go语言开发kube-scheduler整体架构深度剖析

    Go语言开发kube-scheduler整体架构深度剖析

    这篇文章主要为大家介绍了Go语言开发kube-scheduler整体架构深度剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论