Skip to content

Latest commit

 

History

History
222 lines (161 loc) · 10.2 KB

5.5.md

File metadata and controls

222 lines (161 loc) · 10.2 KB

部署go语言项目

准备工作

一般来说web项目都是部署在Linux服务器上,本节主要讲解在Linux上的一些基本操作,以及如何让我们写的网站(虽然简单了点,但确实可以叫网站)可以被访问到。如果读者对Linux很熟悉,可以跳过此章。

购买服务器

部署项目的最简单办法就是在网上购买云主机,可以去阿里云或者腾讯云,当然别的云也可以。

下面以阿里云为例,进入阿里云的官网后,选择“云服务器ECS”就可以了。


然后我们选择配置,以及镜像的类型。乞丐版的话一个月是60多块钱,镜像我们选择Ubuntu的16.04的64位版本。


最后,我们设置一下登录的root密码,然后交钱就可以了。


购买好后,我们就在控制台可以看到服务器的ip了。


(如果是大学生党的话,也可以购买阿里云和腾讯云的学生主机,现在好像是有名额限制,阿里云乞丐版10块钱一个月限流量;腾讯云的乞丐版1块钱一个月,不限流量,送域名)

替代品

当然如果暂时没有使用服务器的需求,只是想学习一下而已的话,也没有必要花一个月60多块钱买服务器。可以使用虚拟机或者安装双系统作为替代品。如果安装虚拟机的话,如果你的电脑很好可以安装一个Desktop版本的Ubuntu(有图形界面),如果电脑配置不高,也可以安装server版本的(没有图形界面)。

虚拟机的安装在这里不进行展开了,百度一下,你就知道了。

安装Xshell

有了服务器,我们需要通过sftp协议连接到服务器,这里推荐使用Xshell,百度一下,你就知道怎么安装了。


Linux的装机必备

连接到主机

到这里,我们打开Xshell,选择新建一个会话,然后输入ip,点击确定。


然后选择连接,接受并保存秘钥。


之后输入用户名和密码(如果买的是腾讯云,默认用户名是ubuntu)。


如果看到下面的界面,就说明连接成功了。


切换root用户

如果是以root用户登录的,我们可以看到在终端显示了root用户以及#号。


如果是以非root用户登录的,我们可以在终端显示了用户名是ubuntu,以及$号。


我这台测试的主机是腾讯云的主机,默认用户为ubuntu,切换用户需要输入sudo su,然后输入密码(这里输入是没有回显的),然后我们再cd到家目录,就可以得到和root登录后一样的结果了。


更新源

接下来,我们在安装软件之前第一先要更新一下源,输入apt-get update就可以了。


安装软件

接下来,我们使用apt-get install命令安装vim和git。


输入y并回车就可以自动安装。

命令行下的文本编辑器:vim的基本使用

在Linux中,不像Windows那样有着方便的图形界面来进行操作,这里一切都是使用命令行进行操作。为了能在Linux下生存,我们要先学会如何读写文件。

vim就是最常用的Linux下的文本编辑器,下面我们来学习它的基本使用。

打开文件

首先我们来打开一个新文件,如说test.txt, 输入vim test.txt,因为test.txt并不存在,所以我们就打开了一个新的空文件。


vim的模式

在vim中有四种模式,普通模式、插入模式、可视模式以及命令模式。在这里我们不对可视模式进行讲解,读者可以自行查阅资料学习。

在刚打开文件的那一刻,我们进入的是普通模式。我们在普通模式输入“i”的时候,会进入插入模式;在普通模式输入“v”,会进入可视模式;在普通模式输入“:”,会进入命令模式。在这几个模式下输入“Esc”,会回到普通模式,下面我们来实战一下。

编辑文件

首先,我们打开的是一个新的文件,我们先输入“i”,


输入“i”之后,左下角出现了“INSERT”,说明我们进入了插入模式,这个时候就可以编辑文件了,使用键盘进行输入字符,然后通过方向键移动光标,使用“Backspace”键删除字符。

下面我随便输入了些字符。


保存文件

接下来,我们编辑好了文件,该保存文件了,摁下“Esc”键回到普通模式。


然后输入“:”,进入命令模式,此时输入“w”命令,并输入回车。


可以看到此时已经保存成功了。


退出编辑器

在命令模式下输入命令摁下回车后,会自动回到普通模式,此时我们再输入“q”命令,就可以退出编辑器了。


保存并退出

我们也可以输入组合命令“wq”,保存并退出。


强制退出

有的时候我们不小心编辑了,但是不想保存,这时候如果输入“q”命令就会提醒我们没有保存。


这时需要加上“!”强制退出。


在ubuntu下搭建go语言环境

下载

首先使用wget命令下载golang的二进制包。

wget http://www.golangtc.com/static/go/1.5.4/go1.5.4.linux-amd64.tar.gz



解压

接下来,使用tar命令解压。

tar zvxf go1.5.4.linux-amd64.tar.gz

移动

解压过后,我们可以看到此时有了一个go目录,使用ls命令可以查看当前目录下的文件。


这时我们使用mv命令把go目录移动到"/usr/local/"下面。

mv go /usr/local/



测试

这时我们测试一下go命令是否是正常的,输入go version查看go语言的版本。


当然也可以写一个HelloWorld来测试一下go run命令,顺便练习一下vim编辑文件。


运行源文件,可以看到已经得到了正确的输出。


接下来,我们需要把go命令添加到PATH中,并添加GOROOT、GOPATH以及GOBIN。

添加到环境变量

我们首先创建一下我们的GOPATH,我把GOPATH放在了家目录下的golang中。

mkdir golang
mkdir golang/src golang/pkg golang/bin



然后,我们使用vim打开家目录下的.bashrc,然后追加到PATH中。

vim ~/.bashrc

添加环境变量到.bashrc的第一行,然后“wq”保存。


编辑完.bashrc后,我们需要使用source命令使它生效,就像我们在Windows配置完环境变量后需要重启一下dos一样,然后此时直接输入go version就可以看到go语言的版本了。


至此,go语言环境搭建成功。

运行我们的网站

安装gin

接下来,我们使用go get命令安装gin框架。

如果遇到失败的包可以通过wget命令从golang中国下载响应的包,然后移动到/root/golang/src目录下。比如说golang.org就被墙了,需要我们手动下载。

wget http://www.golangtc.com/static/download/packages/golang.org.x.net.tar.gz



下载后,解压放到/root/golang/src

tar zvxf golang.org.x.net.tar.gz
mv golang.org /root/golang/src/

测试

安装完成后,我们测试一下gin的Hello World程序。


然后使用go run gin_server.go运行我们的网站,在浏览器输入ip和端口访问它。


把程序放到后台

我们运行完go run之后,会发现我们在这里做不了任何事情,只能新开一个连接窗口,在linux中我们可以在命令后面加入"&",让程序在后台运行,但是当我们退出之后,这个进程就会被杀死,所以要使用nohup命令。


可以看到程序的进程id为29643,输出重定向到了nohup.out。

可以使用kill命令杀死该进程。


让网站自动重启

简单粗暴的方法

有的时候,我们的程序可能会遭到崩溃的情况,所以需要让它自动重启,一个简单粗暴的方法就是一崩溃就继续运行程序。我们编写一个shell脚本,对任务进行死循环。


然后再使用nohup命令把它放到后台即可。

nohup bash ./auto_restart.sh &

其他办法

除了使用上面的方法之外,还可以使用supervisor,网上有很多配置的教程,这里就不进行展开了。

总结

go语言的部分到这里也算是结束了,有一些高级的语法如协程等等都没有讲,web方面也只是浅尝辄止,显示了几个页面,读者如果对web感兴趣,可以继续深入学习前端的技术:HTML5、CSS3以及JavaScript语法,以及后端技术:MVC、模板渲染,SESSION,数据库等等。

链接