一个深漂近10年的程序员立志用未来10年时间去维护一个项目,这个项目的功能未定,用到什么就做什么,遇到什么就写什么。其主要目的有二,一为加深自己的技术深度,二为其他学习者提供参考。

感兴趣的可以跟着我一起做这个项目,不收费、不套路、人间自有真情在。

备注:前面项目中用到的代码已经分享到GitHub中去了,并且以后所有项目中会出现的代码都会提交上去,欢迎查阅。

我们开发的项目最终都会部署在服务器上去运行供所有人去访问,但是具体怎么部署呢?一直以来很多课程都是只讲项目怎么开发,极少人去讲怎么部署,因为部署又是一个很大的课题。很多公司把项目部署是放在运维下面的,但是我们作为一名开发人员不能被资本家腐蚀呀。不然你永远都是一颗螺丝钉,但凡换个地方你就蒙了。所以我们的目标是全栈,精通不精通的不重要,重要的是要懂每一个步骤中的道道。

那么这一节我们主要学习的就是怎么把项目部署到服务端让他跑起来,本节知识点比较多且杂。

1、安装CentOS8

准备工作:

1)准备一台电脑(可以把自己以前淘汰的电脑拿来用)

2)准备一个U盘

3)下载UItraISO(试用版即可)

第一步:使用UItraISO制作安装盘,这里需要注意一下,最好选择HDD++模式去写入,不然有可能在安装过程中找不到系统。

第二步:把制作好的U盘插电脑上进行系统安装,这里若是遇到安装失败的情况,请参考以下解决方案:

第三步:能来到第三步就非常厉害了,给你点赞。在这一步主要就是设置安装目标,其他什么时间、软件选择、设置密码啥的都很easy。这里会遇到一个坑,就是在设置分区的时候你会发现不知道怎么选,要么空闲不够要么不知道点哪里。请看下图,框框中有几个你就选择几个,全选中后下面选择自定义,然后直接点左上角的Done就会直接进入分区界面了。



具体分区请按照你自己的硬盘大小自己分配,但是以下几个必须配置且类型必须选对,不然后面会直接影响你安装是否成功。

文件名称文件系统类型存储类型

一切搞定后确定,然后弹窗提示硬盘原来数据会被抹除,直接确定即可。

回到首页后,点右下角的安装即可。大概等个5分钟吧,安装完成。

2、CentOS源配置

CentOS 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。所以如果你不改的话你会发现什么都是安装失败,直接参考以下配置操作即可:(以下操作只针对CentOS8,其他版本请绕行)

修改后,yum命令就可以使用了。

1、首先设置自己本地语言系统,不然每次都是几个白色小方块你根本就不知道是什么错误信息

2、由于我们安装的系统没有net-tools包所以用不了ifconfig等命令,那肯定不能忍:

3、后面我们肯定会用到数据库吧,我喜欢用MySQL,直接安装:

4、我们后端用的golang,那顺便也安装一下吧;

3、编译要部署的Go项目

因为是demo,所以功能非常简单,整个项目只有一个main.go,其内容如下:

先试一下本地是否能跑起来,母庸质疑肯定可以了。

下面直接打包:

这里需要说一下,因为我的开发环境是mac,而我要部署的目标服务器是linux的,所以GOOS这里我选择了linux,不然你编译后会发现根本运行不起来。另外这里的386就是系统环境标识,具体有点复杂后面有机会再讨论。

命令执行后3S吧,你就会在你的项目根目录下看到一个main文件,直接把这个文件传到目标服务器中。

4、运行你的go项目

当你把main文件传到你的服务器后,你直接在命令行输入 ./main 即可。

但是一般这个时候会提示你没有权限,直接使用:chmod 777 main,这样你就有权限了,继续输入上面的命令。

运行后,你会看到一句提示语: Listening and serving HTTP on :8080.这个时候就表示你运行成功了。

5、关闭防火墙

一般这个时候你肯定会迫不及待的去另一台电脑上打开浏览器输入:ip:8080去享受此刻的胜利果实。但不幸的是你发现你访问不了,这是因为centos8自带防火墙且默认是开启的,这个时候只需要去关闭即可。下面是我收集的常用命令请收藏:

6、后台运行配置

经过以上步骤,其实你已经可以在浏览器对这个服务进行访问了。可这个时候你又发现一个问题,在你关闭当前与服务器的连接后,这个服务又访问不了了。不用担心,请看下面:

至此,开始享受最后的胜利果实吧~

OK,Just it,See you next...