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服务器的部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • GoZero实现数据库MySQL单例模式连接的简单示例

    GoZero实现数据库MySQL单例模式连接的简单示例

    在 GoZero 框架中实现数据库的单例连接可以通过以下步骤来完成,GoZero 使用 gorm 作为默认的数据库操作框架,接下来我会展示一个简单的单例模式实现,需要的朋友可以参考下
    2025-02-02
  • Golang之reflect包的使用方法详解

    Golang之reflect包的使用方法详解

    Golang的Reflect包(reflect)是一个强大的内置包,它提供了在运行时进行程序反射的功能,帮助我们编写更加灵活、通用且动态的代码,为Golang开发者带来了更多的可能性,感兴趣的同学可以参考一下
    2023-06-06
  • 解决Golang json序列化字符串时多了\的情况

    解决Golang json序列化字符串时多了\的情况

    这篇文章主要介绍了解决Golang json序列化字符串时多了\的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Golang使用channel实现数据汇总的方法详解

    Golang使用channel实现数据汇总的方法详解

    这篇文章主要为大家详细介绍了在并发编程中数据汇总的问题,并探讨了在并发环境下使用互斥锁和通道两种方式来保证数据安全性的方法,需要的可以参考一下
    2023-05-05
  • golang使用json格式实现增删查改的实现示例

    golang使用json格式实现增删查改的实现示例

    这篇文章主要介绍了golang使用json格式实现增删查改的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Golang并发操作中常见的读写锁详析

    Golang并发操作中常见的读写锁详析

    Golang中的锁机制主要包含互斥锁和读写锁互斥锁互斥锁是传统并发程序对共享资源进行控制访问的主要手段,这篇文章主要给大家介绍了关于Golang并发操作中常见的读写锁的相关资料,需要的朋友可以参考下
    2021-08-08
  • 详解Golang实现http重定向https的方式

    详解Golang实现http重定向https的方式

    这篇文章主要介绍了详解Golang实现http重定向https的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • golang中按照结构体的某个字段排序实例代码

    golang中按照结构体的某个字段排序实例代码

    在任何编程语言中,关乎到数据的排序都会有对应的策略,下面这篇文章主要给大家介绍了关于golang中按照结构体的某个字段排序的相关资料,需要的朋友可以参考下
    2022-05-05
  • Go语言实现配置热加载的方法分享

    Go语言实现配置热加载的方法分享

    web项目,经常需要热启动各种各样的配置信息,一旦这些服务发生变更,我们需要重新启动web server,以使配置生效,实现配置热加载,本文为大家整理了几个方法实现这个需求,需要的可以参考下
    2023-05-05
  • Go语言下载网络图片或文件的方法示例

    Go语言下载网络图片或文件的方法示例

    这篇文章主要介绍了Go语言下载网络图片或文件的方法示例,文中通过示例代码介绍的非常详细,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12

最新评论